0701 圖結構導學
0702 圖的定義
0703 圖的基本術語
0704 圖的鄰接矩陣存儲結構及算法
0705 圖的鄰接表存儲結構及算法
0706 圖的周遊
0707 非連通圖的周遊
0708 dfs的應用
0709 bfs的應用
定義圖的鄰接矩陣和鄰接表存儲結構,實作其基本運算,并完成測試。
要求:
1、頭檔案graph.h中定義相關的資料結構并聲明用于完成基本運算的函數。對應基本運算的函數包括:
2、在graph.cpp中實作這些函數
3、用main.cpp中的main函數中完成測試。
假設圖g采用鄰接表存儲,分别設計實作以下要求的算法:
(1)輸出出圖g中每個頂點的出度;
(2)求出圖g中出度最大的一個頂點,輸出該頂點編号;
(3)計算圖g中出度為0的頂點數;
(4)判斷圖g中是否存在邊<i,j>。
利用下圖作為測試用圖,輸出結果。

<a href="http://blog.csdn.net/sxhelijian/article/details/49717317">參考解答</a>
實作圖周遊算法,分别輸出如下圖結構的深度優先(dfs)周遊序列和廣度優先周遊(bfs)序列。
假設圖g采用鄰接表存儲,分别設計實作以下要求的算法,要求用差別于示例中的圖進行多次測試,通過觀察輸出值,掌握相關問題的處理方法。
(1)設計一個算法,判斷頂點u到v是否有簡單路徑
(2)設計一個算法輸出圖g中從頂點u到v的一條簡單路徑(設計測試圖時,保證圖g中從頂點u到v至少有一條簡單路徑)。
(3)輸出從頂點u到v的所有簡單路徑。
(4)輸出圖g中從頂點u到v的長度為s的所有簡單路徑。
(5)求圖中通過某頂點k的所有簡單回路(若存在)
(6)求不帶權連通圖g中從頂點u到頂點v的一條最短路徑。
(7)求不帶權連通圖g中,距離頂點v最遠的頂點k
設計一個程式,采用深度優先周遊算法的思路,解決迷宮問題。
(1)建立迷宮對應的圖資料結構,并建立其鄰接表表示。
(2)采用深度優先周遊的思路設計算法,輸出從入口(1,1)點到出口(m,n)的所有迷宮路徑。
1、設圖的鄰接矩陣為
,則該圖為__。
a. 有向圖
b. 無向圖
c. 強連通圖
d. 完全圖
2、已知一個圖,如圖1所示,則從頂點a出發按深度優先周遊則可以得到的一種頂點序列為__。
a. a,b,e,c,d,f
b. a,c,f,e,b,d
c. a,e,b,c,f,d
d. a,e,d,f,c,b
(圖1)
3、畫出圖1的鄰接矩陣和鄰接表存儲的示意圖。
4、已知圖的鄰接矩陣如圖2所示,則從頂點0出發,按深度優先周遊的頂點序列是_。
(圖2)
a. 0 2 4 3 1 5 6
b. 0 1 3 5 6 4 2
c. 0 4 2 3 1 6 5
d. 0 1 3 4 2 5 6
5、已知圖的鄰接矩陣如圖2,根據算法,則從頂點0出發,按廣度優先周遊的結點序列是_
a 0 2 4 3 1 6 5
c. 0 1 2 3 4 6 5
d. 0 1 2 3 4 5 6
6、已知圖的鄰接表如圖3所示,根據算法,則從頂點0出發按深度優先周遊的結點序列是_
(圖3)
a. 0 1 3 2
b. 0 2 3 1
c. 0 3 2 1
d. 0 1 2 3
7、已知圖的鄰接表如圖3所示,根據算法,則從頂點0出發按廣度優先周遊的結點序列是_
a. 0 3 2 1
b. 0 1 2 3
c. 0 1 3 2
d. 0 3 1 2