출처: https://tlsgnvkr.notion.site/5-2-Graph-Search-Algorigthm-74bfb7a532274f588f7def13871fb051?pvs=4
트리에 순회가 있다면, 그래프에는 탐색 알고리즘이 있다. 탐색 알고리즘이란, 그래프의 모든 정점들을 특정한 순서에 따라 방문하는 알고리즘을 의미한다.
트리의 순회는 트리에 있는 정점들을 모두 확인한다는 것 이외에는 큰 의미가 없었지만, 그래프는 트리보다 구조가 훨씬 복잡하기 때문에 탐색 과정에서 얻어지는 정보가 매우 중요하다. 이를테면
와 같은 정보들 말이다람쥐.
그래프의 탐색 알고리즘 중에는 크게 깊이 우선 탐색과 너비 우선 탐색이 존재한다람쥐.
먼저 깊이 우선 탐색(Depth-First Search), 줄여서 DFS라 하는 녀석에 대해 알아보자.
DFS란 그래프의 깊이를 우선하여 그래프를 탐색하는 방식이다. 현재 정점과 인접한 간선들을 하나씩 검사하다가, 아직 방문하지 않은 정점으로 향하는 간선이 있다면 그 간선을 무조건 따라간다.
무슨 말인지 잘 이해가 되지 않는 사람들에게 예시를 들기 위해 그래프 하나를 준비했다. 이 그래프에 DFS를 적용해 보자. 단, 탐색해야 할 정점이 두 개 이상일 경우 알파벳이 앞서는 정점을 먼저 탐색한다고 하자.