컴퓨터알고리즘#15

LeeMir, 19 May 2021

그래프 순회


그래프 순회
  • 모든 정점과 간선을 검사함으로써 그래프를 탐험하는 체계적인 절차
  • 주요 전략 : 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)
깊이 우선 탐색
  • 그래프를 순회하기 위한 일반적 기법
  • 그래프의 모든 정점과 간선을 방문
  • 그래프가 연결 그래프인지 결정
  • 그래프의 연결 요소들을 계산
  • 그래프의 신장 숲을 계산
  • 그래프 내 싸이클 찾기
  • 이진트리의 선위 순회와 유사
  • 정점과 간선의 라벨을 읽고 쓰는데 O(1)의 시간 소요
  • 각 정점은 두 번 라벨
    • 한 번은 Fresh로, 또 한 번은 Visited로
  • 각 간선은 두 번 라벨
    • 한 번은 Fresh로, 또 한 번은 Tree 또는 Back으로
  • 그래프가 인접리스트 구조로 표현된 경우, DFS는 O(n+m) 시간에 수행
너비 우선 탐색
  • 그래프를 순회하기 위한 일반적 기법
  • 그래프의 모든 정점과 간선을 방문
  • 그래프가 연결 그래프인지 결정
  • 그래프의 연결 요소들을 계산
  • 그래프의 신장 숲을 계산
  • 그래프 내 단순싸이클 찾기
  • 이진트리의 레벨 순회와 유사