用鄰接表建圖,解決一下最短路徑?

時間 2021-06-03 01:01:02

1樓:林濯

Dijkstra用一句話概括就是:

每一次從所有點中找出距源點的距離已經無法更新的最近的點,以這個點為中間點,

更新源點到其它可更新的點的距離。

做N-1遍(N為點數),就做完了。

『比方說上圖,先把廣州丟到乙個坑里,這個坑叫做【已經最短不能再短坑】。

初始除了深圳和株洲這兩個與廣州直接相連的點,其他點到廣州的初始距離都是無限大。

然後我們把深圳丟到坑里,以深圳為中間點,

更新廣州到坑外面所有點(看看先經過深圳再到那個點會不會更近)的距離。

下一輪被丟到坑里的是株洲,

這次我們可以更新與之相鄰的四個點的距離。

(原先均為無限大,

經過株洲後變成【廣州--株洲距離】加上【株洲--該點的距離】,更近,更新)

下乙個入坑的是南昌……

依此類推,直到所有的點都到坑里。』

至於鍊錶,(我講的是模擬鍊錶)

用五句話來說就是,

1、給每一條邊分配乙個位址。

2、專門有乙個陣列為每條邊儲存【從同一點出發的下一條邊的位址】。

3、同時若干陣列儲存這條邊的資訊【長度,指向的點……】。

4、專門有乙個陣列為每個點儲存【第一條】從這個點出發的邊的位址。

5、每次訪問從乙個點出發的所有邊,

我們都從這個點的這個陣列裡提取從【該點出發的第一條邊】的位址,然後通過這個位址得到這條邊的【所有資訊】以及【下一條邊的位址】,繼續訪問下一條邊,直到沒有下一條邊(位址為0)。

用乙個單調遞增的整型變數作為位址。

誰能解決一下金字塔怎麼建的?

龍大 埃及金字塔難點 難點1百噸巨石是運上146公尺 解釋 其實金字塔平均只有2.5噸,墓穴蓋版那幾塊才比較重十幾噸到60噸。一共8000噸左右。2.5噸石頭可以用爬樓梯方式往上運。也就是金字塔每一層留一部分空隙形成階梯用來運送石頭。胡夫金字塔一層不到一公尺。每次人力抬高2.5噸完全沒用難度。至於少...

備考2023年一建,用2023年的教材就可以嗎?

給世界乙個微笑 現在這個階段可以啊,先過基礎,理解為主。沒有紙質版可以先用21年的電子版 我有 等明年教材出來購買紙質版,一定要買紙質版!現在最好看今年網課 俺也you 原因就是一天下來,工作那麼忙,身心俱疲,你是鐵打的,也沒有那麼多精力去自己鑽研 學習要點 預習,高效,複習。先學習重難點知識,消化...

考完一建後有什麼用,真的會有錢嘛?

張翔宇 會的,我不是一建,我是一造,我考過以後從乙個小私企職員到了乙個大型國企中層,待遇由10萬到24萬,最主要的是我終於在30歲的時候找到了理想工作,以後不用考慮跳槽,避免以後出現35的中年危機。 慕銘 對於很多對一建並不了解的人甚至是行業的大多數人來說,跟著風考了一建,未來不再從事建築行業,這本...