9-5. [C/C++] 그래프의 탐색 - 너비 우선 탐색, BFS
·
Computer Science/Data Structure
그래프 탐색 그래프 탐색은 하나의 정점에서 시작해 모든 정점들은 한 번씩 방문하는 그래프의 가장 기본적인 연산이다. 그래프의 탐색 방법에는 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)가 있다. 너비 우선 탐색 너비 우선 탐색(breadth first search, BFS)은 시작 정점으로 부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 그래프 순회 방법이다. BFS는 임의의 노드에서 가장 가까운 노드를 먼저 탐색한다. 가까이 있다면 당연하게 먼저에 만나게 될 것이다. "먼저 만난 노드를 먼저 탐색한다." 큐 자료구조의 특징과 비슷하다는 것을 알 수 있다. 그래서 BFS에서는 큐를 사용한다. BFS의 동작 과정을 보자. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. ..