코드 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 연결되지 않은 그래프 순회