我@Knight's Shortest Path Chess Question騎士的最短路徑圖的數據結構和算法
我明白的答覆是在以前的stackflow後一個問題「OK,這是一個圖形的問題,和它的稀疏矩陣是像」:
(a1,b3)=1,
(a1,c2)=1,
.....
其中描述了現有的邊緣。但是我仍然不知道這個圖的數據結構應該是什麼樣的(它是一個鄰接矩陣嗎?表示爲'稀疏矩陣',還是別的?),以便Dijkstra算法很容易使用它。
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm。
從算法描述看,如果圖數據結構是一組頂點,並且有可用的鄰點頂點信息,那麼看起來很方便。但我們如何實現這一目標?
任何人都可以幫助寫出該圖的示例數據結構,並解釋一下如何將它方便地鏈接到Dijkstra算法?
謝謝,
謝謝阿米特。數據結構很有意義。正如你所說,BFS是正確的選擇(我實際上使用BFS,在我借用Dijkstra來提出數據結構問題:)的問題中)。還有一個問題,在我的問題中,我需要找到除了最短路徑長度之外的路徑。然而,在Dijkstra中陳述的'先前[v]'想法我不確定如何在BFS中實現它。因爲我在BFS的運行中創建了鄰接列表,並且沒有將中間頂點放在一個集合中,所以當算法完成時,那些中間頂點就不見了。那我能做些什麼? – user1559625
@ user1559625:我曾在[此線程](http://stackoverflow.com/q/9590299/572670)中解決了此問題。告訴我,你是否有任何理解它的困難。 – amit
很酷。謝謝阿米特。這是一個很大的幫助。任何關於算法的初學者/中級書籍的建議:)?算法上我很弱。祝你有美好的一天,並感謝所有的幫助。 – user1559625