DFS 通过沿着每个分支尽可能深入来探索图,然后回溯。它使用栈(通常通过递归使用调用栈),在探索替代方案之前访问完整的路径。
思想
从一个节点开始,递归进入一个未访问的邻接节点,并不断深入;当无法继续时,回退并尝试另一个分支。
示例
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
