그래프는 정점
과 정점 사이
를 연결하는 간선
으로 이루어진 비선형 자료구조 입니다.
정점 집합
과 간선 집합
으로 표현 가능합니다.
방향 그래프
와 무방향 그래프
로 나눌 수 있습니다.간선으로 이어진 정점끼리 서로 이동이 가능합니다.
즉, A기준으로 (A,B)와 B기준으로 (B,A)는 같은 간선입니다.
간선에 방향성이 존재하고 간선이 서로 다른 방향이면 양방향 이동이 가능합니다.
하지만, (A,B)와 (B,A)는 다른 간선으로 취급됩니다.
모든 정점이 서로 이동 가능해야합니다.
특정 정점에서 또다른 정점까지 모든 경우의 수중에 이동 가능해야합니다.
특정 정점에 간선이 존재하지 않는 그래프입니다.
모든 정점끼리 연결된 상태인 그래프로 다음과 같은 공식이 성립됩니다.
한 정점의 간선수
=모든 정점
- 1
모든 정점
- 1 x정점 수
=모든 간선수
그래프의 정점과 간서의 부분 집합에서 훈환이 되는 부분입니다.
인접 행렬, 인접 리스트 두 가지 방법으로 그래프를 표현할 수 있습니다.
const graph = Array.from(Array(5),() => Array(5).fill(false));
graph[0][1] = true; // 0 -> 1
graph[0][3] = true; // 0 -> 3
graph[1][2] = true; // 1 -> 2
graph[2][0] = true; // 2 -> 0
graph[2][4] = true; // 2 -> 4
graph[3][2] = true; // 3 -> 2
graph[4][0] = true; // 4 -> 0
const graph = Array.from(Array(5), () => []);
graph[0].push(1); // 0 -> 1
graph[0].push(3); // 0 -> 3
graph[1].push(2); // 1 -> 2
graph[2].push(0); // 2 -> 0
graph[2].push(4); // 2 -> 4
graph[3].push(2); // 3 -> 2
graph[4].push(0); // 4 -> 0