본문 바로가기
알고리즘/개념

dfs 알고리즘

by 오오오니 2021. 5. 30.

깊이우선탐색

-어떤 정점을 방문하여 확인한 후 그 정점과 연결된 정점들 중에서 우선 순위가 가장 빠른 하나를 선택해 방문해 나가는데, 더 이상 방문할 곳이 없으면 이전 상태로 되돌아가는 탐색 방법


 

 

 

 

 

구현하는 방법

1.순환호출을 이용하는 방법

2.명시적인 스택을 사용하여 인접한 정점들을 스택에 저장하였다가 다시 꺼내는 방법

방문 여부를 기록하기 위해 배열 visited를 사용한다.

 

그래프가 인접행렬 또는 인접 리스트로 표현되엇는가에 따라 깊이 우선탐색 프로그램이 약간 달라짐

 

출처:https://blog.hexabrain.net/268

모든 정점의 visited 배열값은 false로 초기화

정점이 방문될 때마다 해당 정점의 visited배열값은 TRUE로 변경

-인접행렬,재귀함수

출처:https://blog.hexabrain.net/268

-인접리스트

출처:https://seohyun0120.tistory.com/entry/C-BFS%EC%99%80-DFS-%EC%9D%B8%EC%A0%91%ED%96%89%EB%A0%AC%EA%B3%BC-%EC%9D%B8%EC%A0%91%EB%A6%AC%EC%8A%A4%ED%8A%B8

 

- stack 사용

출처:https://jisun-rea.tistory.com/entry/c-dfs-%EA%B0%9C%EB%85%90-%ED%95%A8%EC%88%98-%EA%B5%AC%ED%98%84
출처:https://itguava.tistory.com/62