slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
資料結構 PowerPoint Presentation
Download Presentation
資料結構

Loading in 2 Seconds...

play fullscreen
1 / 33

資料結構 - PowerPoint PPT Presentation


  • 134 Views
  • Uploaded on

資料結構. 第 7 章 圖形結構. 7-1  認識圖形. Koenigsberg Bridge 問題. 7-1-1  圖形的定義. 圖形 G 是由 V(G) 和 E(G) 所組成,其中 V(G) 是一個有限且非空的集合,代表頂點, E(G) 是一個有限的集合,代表邊 ,寫成 G = (V, E) 。. 7-1-2  圖形的相關名詞. 相關名詞: 相鄰 分支度 長度 簡單路徑 連通 、強連通 、弱連通 循環 加權圖形 自身迴圈 、多重圖形 、簡單圖形 子圖形 連通單元、強連通單元 完整圖形. 7-2  圖形的表示方式. 7-2-1  相鄰矩陣

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '資料結構' - saskia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

資料結構

第7章 圖形結構

slide2
7-1 認識圖形
  • Koenigsberg Bridge問題
7 1 1
7-1-1 圖形的定義

圖形G是由V(G) 和E(G) 所組成,其中V(G) 是一個有限且非空的集合,代表頂點,E(G) 是一個有限的集合,代表邊 ,寫成G = (V, E)。

7 1 2
7-1-2 圖形的相關名詞

相關名詞:

  • 相鄰
  • 分支度
  • 長度
  • 簡單路徑
  • 連通 、強連通 、弱連通
  • 循環
  • 加權圖形
  • 自身迴圈 、多重圖形 、簡單圖形
  • 子圖形
  • 連通單元、強連通單元
  • 完整圖形
slide5
7-2 圖形的表示方式

7-2-1 相鄰矩陣

  • 範例7.1:以相鄰矩陣存放無向圖形G1。
slide7
7-2-2 相鄰串列
  • 範例7.3:以相鄰串列存放無向圖形G1。
slide9
7-2-3 加權圖形的表示方式
  • 範例7.5:以相鄰矩陣存放加權圖形G6。
slide11
7-3 圖形的基本運算

7-3-1 深度優先搜尋 (DFS)

slide12
範例7.7:[DFS] 假設下列圖形的起始頂點為A,試寫出其深度優先搜尋結果。
slide15
範例7.9:[BFS] 假設下列圖形的起始頂點為A,試寫出其廣度優先搜尋結果。
7 3 3
7-3-3 連通單元
  • 只要呼叫dfs(0) 或bfs(0) 函數,令它從第一個頂點開始走訪,一旦在走訪完畢後還有其它尚未拜訪過的頂點,就表示該圖形不是一個連通圖形 ,下圖即為一例。

show_connected()

{

int v;

for(v = 0; v < n; v++)

if (visited[v] == FALSE){

dfs(v);

printf("\n");

}

}

7 3 4
7-3-4 擴張樹
  • 圖形的擴張樹 (spanning tree) 指的是以圖形內最少的邊數連接所有頂點所形成的樹,而樹 (tree) 則是連通且沒有循環的圖形 。
slide20

G15的DFS樹

G15的BFS樹

slide21
7-4 最小擴張樹
  • Kruskal演算法
slide24
7-5 最短路徑
  • 最短路徑 (shortest path) 又分成「某個頂點到其它頂點的最短路徑」和「任意兩個頂點的最短距離」兩種情況。

以加權圖形表示城市之間的交通路線

slide26
使用Dijkstra演算法求取某個頂點到其它頂點的最短路徑:每次都要從尚未選擇的頂點中選擇距離最短者Vx ,然後檢查有沒有其它尚未選擇的頂點Vi因為行經Vx而使距離變短,如此重複V - 1次,直到找出第V - 1個頂點的最短路徑,整個演算法才宣告結束。
7 5 2
7-5-2 任意兩個頂點的最短距離
  • 方法一:分別以加權圖形的每個頂點做為起始頂點執行Dijkstra演算法。
  • 方法二:使用Floyd演算法,其步驟如下 :
  • 使用admatrix[V][V] 陣列存放加權圖形的相鄰矩陣。
  • 定義Ak[i][j] 為Vi到Vj的最短距離,而且中間只能經過索引小於等於k的頂點。
  • 定義A0[i][j] 為admatrix[i][j] 。
  • 根據下式依序求取A0、A1、…、AV,AV即為最後的結果。

Ak[i][j] = min{ Ak-1[i][j], Ak-1[i][k] + Ak-1[k][j]}, k ≥ 1且A0[i][j] = 邊 (Vi, Vj) 的距離

slide28
範例7.18:[Floyd演算法] 針對加權圖形G17找出任意兩個頂點的最短距離。
slide29
解答:

1. 3.

2. 4.

slide30
7-6 拓樸排序
  • 頂點工作網路 (AOV網路,activity on vertex network)
  • 前行者 (predecessor)、後繼者 (successor)
  • 立即前行者 (immediate predecessor) 、立即後繼者 (immediate successor)
  • 拓樸排序 (topology sort),例如V0→V1→V2→V3→V4→V5→V6→V7和V0→V1→V2→V3→V4→ V6→V5→V7
slide31
範例7.20:[拓樸排序] 針對有向圖形G18找出其拓樸排序。

1. 2.

slide32
3. 4.

5. 6.

slide33

7.

8.

9.輸出V7,所有頂點均輸出完畢,得到拓樸排序為V0→V1→V2→V3→V4→V5→V6→V7。