3
我見過的幾篇論文和幻燈片提到Dial的Dijkstra單源最短路徑算法的實現。他們都說一個桶被存儲爲一個雙向鏈表。 (例如,http://www.cs.ucsb.edu/~suri/cs231/ShortestPaths.pdf,http://www.acsu.buffalo.edu/~nagi/courses/684/4.shortestpath.pdf)。然而,所需的操作僅僅是這樣(就我看到的):爲什麼Dial版本的Dijkstra算法中使用雙鏈表?
察看剷鬥空
將節點添加到一個桶(順序並不重要)
在刪除傳遞的節點時對一個存儲桶進行迭代。
他們都可以用一個單向鏈表來完成一樣容易(2,只是改變指針列表到新節點的開始,它的下一個指針更改爲老第一個節點在桶裏)。
那麼,有沒有一個原因,我錯過了爲什麼雙向鏈表是理想的呢?