資料結構實踐項目——最短路徑和拓撲序列

來源:互聯網
上載者:User

標籤:資料結構   演算法   最短路徑   拓撲序列   

本文是針對[資料結構基礎系列(7):圖]的第2組實踐常式。

(程式中graph.h是圖儲存結構的“演算法庫”中的標頭檔,詳情請單擊連結…)

0710 產生樹的概念
0711 最小產生樹的普裡姆演算法
0712 最小產生樹的克魯斯卡爾演算法
0713 從一個頂點到其餘各頂點的最短路徑
0714 每對頂點之間的最短路徑
0715 拓撲排序
0716 AOE網與關鍵路徑

紙上談兵:“知原理”檢驗題目
1、針對下面的圖1:
(圖1)
(1)寫出圖的鄰接矩陣;
(2)按照Prim演算法的思想,構造出最小產生樹;
(3)對照Prim演算法的實現,以作為參數g的值,用“畫一畫”的路線,走一遍演算法,畫出lowest[]和closest[]兩個輔助數組的變化過程,“觀察”演算法執行的過程,從而達到掌握演算法的目的;
(4)按照Kruskal演算法的思想,構造出最小產生樹;
(5)對照Kruskal演算法的實現,以作為參數g的值,用“畫一畫”的路線,走一遍演算法,畫出E[]和vest[]兩個輔助數組的變化過程,“觀察”演算法執行的過程,達到掌握演算法的目的;
2、針對下面的圖2
(圖2)
(1)寫出圖的鄰接矩陣;
(2)按照Dijkstra演算法的步驟,求出從頂點0到其餘所有頂點的最短路徑;
3、某鄉有A、B、C、D四個村莊,圖3中標識了各村之間的距離。現在要在某村莊修建中心俱樂部,請採用Floyd演算法
(圖3)
(1)求出各村莊之間的最短路徑;
(2)俱樂部的選址,應該使各村到俱樂部的距離之和最小,該選哪個村?
(3)寫出各村到中心俱樂部的路徑和路徑長度。
4、針對下面的圖4,儘可能多地寫出其拓撲序列
(圖4)

課後上機實踐
【項目 - 驗證演算法】運行並本周視頻中所講過的演算法,觀察結果並領會演算法。
(1)Prim演算法的驗證(使用圖1作為測試案例)
(2)Kruskal演算法的驗證(使用圖1作為測試案例)
(圖1)
[參考解答: (1) (2)]

(3)Dijkstra演算法的驗證(使用圖2作為測試案例)
(圖2)
[參考解答 ]

(4)Floyd演算法驗證(使用圖3作為測試案例)
(圖3)
[參考解答 ]

(5)拓撲排序演算法驗證(使用圖4作為測試案例)
(圖4)
[參考解答 ]

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

資料結構實踐項目——最短路徑和拓撲序列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.