我想了解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