1. 깊이 우선 탐색

image.png

기능 특징 시간 복잡도(노드 수: V, 에지 수: E)
그래프 완전 탐색 재귀 함수로 구현 스택 자료구조 이용 O(V + E)

✅ 깊이 우선 탐색의 핵심 이론

  1. DFS를 시작할 노드를 정한 후 사용할 자료구조 초기화하기
    1. DFS를 위해 필요한 초기 작업
      1. 인접 리스트로 그래프 표현하기
      2. 방문 배열 초기화 하기 (스택에 시작 노드를 1로 삽입할 때 해당 위치의 방문 배열을 체크한다.)
      3. 시작 노드 스택에 삽입하기

image.png

  1. 스택에서 노드를 꺼낸 후 꺼낸 노드의 인접 노드를 다시 스택에 삽입하기
    1. pop을 수행하여 노드를 꺼낸다.
    2. 꺼낸 노드를 탐색 순서에 기입하고 인접 리스트의 인접 노드를 스택에 삽입하며 방문 배열을 체크한다.
    3. 방문 배열: T, T, T, F, F, F

image.png

  1. 스택 자료구조에 값이 없을 때까지 반복하기
    1. 앞선 과정을 스택 자료구조에 값이 없을 때까지 반복한다.
    2. 이미 다녀간 노드는 방문 배열을 바탕으로 재삽입하지 않는다.

image.png