我无法弄清楚如何让它发挥作用...我试图通过DFS尝试到达目标的最短路径。我知道BFS更好但我被要求使用DFS。正如你所看到的,我试图在导致最终找到目标的所有堆栈之间进行比较,但是它不起作用,只有第一个导致目标的堆栈被打印出来......我知道我需要的地方取消访问节点,但我无法确切知道如何。现在我确实找到了通向目标的路径,但不是最短路径。对此的任何帮助将不胜感激。
答案 0 :(得分:2)
使用自己的堆栈编写非递归DFS是可能的,但我发现递归解决方案更优雅。这是一个草图:
DFS(vertex)
path.push_back(vertex)
visited[vertex] = true
if we found the exit
output path
else
for each neighbor v of vertex
if not visited[v]
DFS(v)
visited[vertex] = false
path.pop_back()