Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

DFS (깊이 우선 탐색)

Depth-First-Search

<원리>

  1. 현재 노드와 연결된 자식 노드를 확인한 후, 곧바로 현재 노드 위치를 선택된 다음 자식의 노드로 변경한다.
  2. 자식 노드에서 원하는 결과를 찾지 못할 때 돌아올 수 있도록 현재 노드 위치를 스택(Stack)을 사용하여 기억해야 한다.
    => 재귀함수로 구현
  3. 이때, 이전의 부모노드로 돌아오는 과정을 백트래킹(Back-Tracking)이라고 한다.

<장점>

  • 단지 현 경로상의 노드들만을 기억하면 되므로 저장공간의 수요가 비교적 적다.
    => 그래프의 높이 만큼의 공간만을 요구
  • 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있다.

<단점>

  • 해가 없는 경로에 깊이 빠질 가능성이 있다.
  • 얻어진 해가 최단 경로가 된다는 보장이 없다.(경로가 여러개인 경우)