GDSC HUFS 3기/Algorithm - Basic

DFS(Depth-First Search)

raphel_K 2022. 6. 6. 03:27

DFS의 개념

→ 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법

DFS의 특징

→ 자기 자신을 호출하는 순환 알고리즘의 형태 를 가지고 있다.

→ 전위 순회(Pre-Order Traversals)를 포함한 다른 형태의 트리 순회는 모두 DFS의 한 종류이다.

→ 이 알고리즘을 구현할 때 가장 큰 차이점은, 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사 해야 한다는 것이다.

  • 이를 검사하지 않을 경우 무한루프에 빠질 위험이 있다.

DFS의 과정

DFS의 알고리즘

→ 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법

DFS의 특징

→ 자기 자신을 호출하는 순환 알고리즘의 형태 를 가지고 있다.

→ 전위 순회(Pre-Order Traversals)를 포함한 다른 형태의 트리 순회는 모두 DFS의 한 종류이다.

→ 이 알고리즘을 구현할 때 가장 큰 차이점은, 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사 해야 한다는 것이다.

  • 이를 검사하지 않을 경우 무한루프에 빠질 위험이 있다.

DFS의 과정

DFS의 알고리즘

→ 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법

DFS의 특징

→ 자기 자신을 호출하는 순환 알고리즘의 형태 를 가지고 있다.

→ 전위 순회(Pre-Order Traversals)를 포함한 다른 형태의 트리 순회는 모두 DFS의 한 종류이다.

→ 이 알고리즘을 구현할 때 가장 큰 차이점은, 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사 해야 한다는 것이다.

  • 이를 검사하지 않을 경우 무한루프에 빠질 위험이 있다.

DFS의 과정

DFS의 알고리즘

'GDSC HUFS 3기 > Algorithm - Basic' 카테고리의 다른 글

Sorting(정렬)  (0) 2022.06.06
[Algorithm-Basic]Queue  (0) 2022.06.02
[Algorithm-Basic]너비 우선 탐색( BFS )  (0) 2022.06.02
[Algorithm-Basic] Stack  (0) 2022.06.01