더북(TheBook)

코드 6-10

    def dfs_all(self):
        self.init_visited()
        
        for i in range(len(self.visited)):
            if not self.visited[i]:
                self.__dfs_recursion(i)

코드 6-10을 이용하면 연결된 그래프가 아니라고 해도 모든 정점을 순회할 수 있습니다. 예제 코드를 내려받아 ch6/graph_traversal.py 파일을 열고 마지막 테스트 코드에 그림 6-30과 같은 그래프를 만든 후 1을 인수로 dfs로 순회했을 때와 dfs_all로 순회했을 때의 실행 결괏값을 비교해 보세요.

참고로 그림 6-30은 graph_traversal.py 파일 마지막 테스트 코드에 있는 연결 요소가 두 개인 그래프입니다. 이때 dfs(1)로 순회하면 정점 1이 포함된 연결 요소의 정점들만 방문합니다.

▲ 그림 6-30 연결되지 않은 그래프 순회

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.