[英]DFS shortest path of a maze in C++
我在弄清楚如何使它正常工作方面遇到困难...我正在尝试使用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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.