DFS は、グラフを各分岐に沿って可能な限り深く進んでからバックトラックすることで探索します。スタック(多くの場合は再帰による呼び出しスタック)を使用し、完全なパスを訪れてから別の分岐を探索します。
アイデア
ノードから未訪問の隣接ノードに再帰し、深く進み続けます。行き止まりになったら戻って別の分岐を試します。
例
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
