DFS

K-위키
옛@Helldongdae (토론)님의 2017년 7월 4일 (화) 01:39 판 (새 문서: Depth First Search, 다른 말로 깊이 우선 탐색이라고 한다. 그래프가 있으면 방문 안한것들이 보일 때 마다 방문하는거다. 구현할 때 스택 아...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Depth First Search, 다른 말로 깊이 우선 탐색이라고 한다.

그래프가 있으면 방문 안한것들이 보일 때 마다 방문하는거다.

구현할 때 스택 아니면 재귀로 구현하는데 재귀가 훨씬 편하다.

의사코드로 표현하면 다음과 같다.

 FUNCTION DFS(int src):
   FOR i in graph[src]:
     IF i is not visited:
       VISIT i

C++로 표현하면 다음과 같다.

 void DFS(int src){
   for(int i = 0;i<graph[src].size();i++){
     if(visited[graph[src][i]] == false) DFS(graph[src][i]);
   }
 }

그래프 탐색에서는 존나게 중요한 알고리즘 중 하나로 너비 우선 탐색하고 같이 많이 쓰인다. 보다시피 코드가 짧아서 사실 너비우선탐색보다 구현은 편하다.