정점과 간선으로 이루어진 자료구조
간선에 방향이 있는 그래프로
A -> B로 향하는 간선과 B -> A로 향하는 간선이 서로 다를 수 있다.
진입차수(in-degree)와 진출차수(out-degree)로 나눠서 생각한다.
간선에 방향이 없는 그래프로
A - B를 연결하는 간선은 동일하다.
정점에 연결된 간선의 수
무방향 그래프
방향 그래프
경로
사이클 (경로 종류 중 하나)
가중치 그래프
public Node(int node, int dist) {
this.node = node;
this.dist = dist;
}
}
인접 행렬
int[][] adj = new int[V+1][V+1];
(무방향 그래프라면 역방향으로 만드는 행렬도 필요하다.)
인접 리스트
- 간선 기반의 그래프의 일종으로 간선의 정보를 기반으로 저장한다.
List<Node>[] graph
형태로 선언한다.List<Integer> graph[] = new List[V+1];
for(int i=1; i<=v; i++){
graph = new ArrayList<>();
}
for(int i=0; i<e; i++){
int src; int dst;
graph[src].add(dst);
}