그래프는 정점과 간선(V, E)을 저장하는 자료구조이다.
-Directed graph
방향을 갖는 Directed edge로 이루어진 그래프
출발하는 정점 u를 origin 이라 하고 도착하는 정점 v를 destination 이라 한다.
(u,v) != (v,u)
End Vertices(endpoints) - 간선의 양 끝 정점
-> U와 V는 a의 endpoint이다.
incident - 정점에 연결된 간선들의 관계
-> 정점 V의 incident edges는 a,d,b 이다.
adjacent - 간선으로 이어진 두 정점 사이의 관계
-> 정점 U와 V는 adjacent.(인접하다.)
degree - 한 정점에 연결된 간선의수
-> X의 degree는 5이다.
parallel edges - 간선들이 같은 endpoints를 가질 때.
-> 간선 h와 i는 parallel edges이다.
self-loop - 양 끝이 하나의 정점에만 연결된 간선
-> 간선 j 는 self-loop다.
Path - 경로
ex. P1 = (V, b, X, h, Z) or (V, X, Z)
ex. P2 = (U, c, W, e, X, g, Y, f, W, d, V) or (U, W, X, Y, W, V)
Simple graph일 때는 간선을 생략하고 표현할 수 있다.
Simple graph => pallele edge, self loof가 없은 그래프
Simple Path (단순경로) - 중복하여 방문하는 정점, 간선이 없는 경로
-> P1 = simple path
-> P2 = not simple path
Vertices and edges
Accesor methods
Update methods
Iterable collection methods
그래프 구현의 가장 기본적인 구조
단점 임의의 노드 Incident Edge를 찾을 때 처음부터 탐색해야 한다. 그 이유는 edge->vertex로의 연결은 있지만, vertex->edge로의 연결이 없기 때문
따라서 O(m)이 걸린다.
간선에 대한 연산을 O(m)에서 O(deg(v))로 줄여준다.
undurected graph이기에 대칭구조를 이룬다.