這是更常見的問題。我有一張地圖將城市名稱映射到其節點(包含基本信息,如國家,經緯度,長等)。每個城市節點都有一組指向目標節點的邊。邊緣有時間和成本。我想找到在兩個節點之間旅行的最短時間,但我已經開始迷惑自己瞭解這個最好的方法。使用Dijkstra和最小堆找到節點之間的最短路徑C++
我已經創建了我自己的基於城市節點向量的最小堆類。我能夠創建地圖,從地圖添加城市節點到最小堆。我寫了dijkstra的算法來找到最短路徑,它適用於一些路徑,但不是全部。我相信這是因爲當我更新dijkstra算法的城市節點的權重時,堆未被正確排序。
一旦我更新了一個節點的權重,我該如何重新堆積堆以便最低的權重位於頂部?
謝謝!