我想了解BFS如何使用队列来找出最短路径。假设我有一个网格:简单的bfs示例...我不明白
1--2--3
| | |
4--5--6
| | |
7--8--9
|
0
起始点是'9'且目标是'0'。
所以...我按下启动...
push 9 {9}
pop 9 {}
push 6 {6}
push 8 {6,8}
pop 6 {8}
push 3 {8,3}
push 5 {8,3,5}
pop 8 {3,5}
push 7 {3,5,7}
pop 3 {5,7}
push 2 {5,7,2}
pop 5 {7,2}
push 4 {7,2,4}
pop 7 {2,5}
found 0
我如何可以提取这个烂摊子的最短路径?我不明白这是如何给我最短的路径。我在想它错吗?
谢谢!
你必须有一个额外的标记[]数组标志标记已访问了哪些节点?你的实现似乎在我的本地机器上执行时无限循环。 – evandrix 2013-02-07 16:29:07