노드(node)와 그 노드를 연결하는 간선(edge)을 하나로 모아 놓은 비선형 자료 구조
그래프 G = (V, E)
V(G) = 정점(Vertices)
E(G) = 간선(Edges)
그래프 용어
- 무항 간선(Undirected Edge): 정점을 연결하는 간선에 방향이 존재하지 않음
- 유항 간선(Directed Edge): 정점을 연결하는 간선에 방향이 존재. 임의의 간선 (vi, vj)에 대해 (vi, vj)≠(vj, vi)
- 인접(Adjacent): 정점 vi, vj에 대해 간선 e = (vi, vj)가 존재하면 정점 vi와 vj는 인접
- 부속(Incidnet): 정점 vi, vj에 대해 간선 e = (vi, vj)가 존재하면 간선 e는 정점 정점 vi와 vj에 부속
- 차수(Degree): 정점에 부속된 간선의 수
- in-degree: 방향 그래프에서 정점에 들어오는 간선의 수
- out-degree: 방향 그래프에서 정점에서 나가는 간선의 수
- 경로(Path): 임의 정점에서 다른 정점으로 이르는 길
- 경로 길이(Path Length): 경로상 있는 간선의 수
- 단순 경로(Simple Path): 한 경로의 모든 간선이 다른 때의 경로
- 회로(Cycle): 동일 정점에서 시작과 끝이 이어지는 경로
- 연결됨(Connected): 정점 vi에서 정점 vj로의 경로가 존재하면, 정점 vi와 정점 vj는 연결되어 있음
무향 연결 그래프 G에서 하나의 정점과 연결된 간선들을 제거했을 때 두 개의 연결 그래프로 나뉘어 진다면 해당 정점은 단절점
무향 그래프(Undirected Graph)
무향 간선으로 이루어진 그래프
유향 그래프(Directed Graph)
유향 간선으로 이루어진 그래프
가중치 그래프(Weighted Graph)
가중치를 갖는 간선으로 이루어진 그래프
정규 그래프(Regular Graph)
모든 정점이 동일한 차수를 가지는 그래프
완전 그래프(Complete Graph)
임의의 두 정점 vi와 정점 vj에 대해서 vi, vj를 잇는 간선 Edge(vi, vj)이 존재하는 그래프로, 완전 그래프는 정규 그래프. 각 정점에서 다른 모든 정점을 연결하기 때문에 최대 간선 수를 가짐
연결 그래프(Connected Graph)
임의의 두 정점 vi와 정점 vj에 대해서 경로 Path(vi, vj)가 존재하는 그래프
부분 그래프
트리 그래프
순환을 갖지 않는 연결 그래프로, 임의의 두 정점에 대해서 경로가 정확히 1개 존재
간선 리스트(Edge List)
인접 행렬(Adjacency Matrix)
인접 리스트(Adjacent List)
그래프 표현 방식 비교