我无法弄清楚如何准确地使其发挥作用...我正在尝试使用 DFS 获得到达目标的最短路径。我知道 BFS 更好,但有人要求我使用 DFS。正如您所看到的,我尝试对导致最终的所有堆栈进行比较以找到目标,但它不起作用,只有导致目标的第一个堆栈被打印......我知道我需要的地方取消访问节点,但我不知道具体如何操作。现在我确实找到了一条通往目标的路径,但不是最短的路径。任何对此的帮助将不胜感激。
使用自己的堆栈可以编写非递归 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)