天天看點

資料結構實踐項目——圖的基本運算及周遊操作

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

繼續閱讀