그림으로 실행 과정을 따라가 보겠습니다.
그림 6-23을 보면 시작 정점이 2입니다. 맨 처음 __dfs_recursion(2)를 호출하겠지요. 그림에서는 간략히 dfs_rec로 표기했습니다. 메서드 내부를 보면 먼저 방문하고 visited[2]를 True로 만듭니다. 그다음으로 adj[2]를 가져오는데 그림을 보면 adj[2]={1, 3}입니다. 이 중 한 방향을 선택하게 되는데, 여기서는 정점 1을 선택했다고 합시다.
▲ 그림 6-23 DFS 1
그림 6-24를 보면 정점 1을 인수로 __dfs_recursion() 메서드를 호출했습니다. 정점 1을 방문하고 visited[1]=True로 합니다. adj[1]={0, 2}입니다. 정점 2는 이미 방문한 상태이므로 정점 0을 인수로 다시 __dfs_recursion을 호출합니다.
▲ 그림 6-24 DFS 2