資料結構之——圖
圖是一種非線性結構。
圖形結構中對結點的前驅和後繼個數是不加限制的,結點間關係是任意的。
圖的概念
1.圖的定義
圖G由集合V(頂點有窮非空集合)與集合E(邊的有窮集合)組成,記為 G(V,E)
圖G的頂點集和邊集記為V(G)、E(G)
2.無向圖
若圖G中的每條邊都是沒有方向的,則稱G為無向圖。無向圖中的邊均是頂點的無序對,通常用圓括號表示例如(x,y),注意:在無序對中(x,y)與(y,x)同屬一條邊。
3.有向圖
若圖中的每條邊都是有方向的,則稱G為有向圖。有向圖的有向邊是由兩個頂點組成的有序對,通常用尖括號表示例如<x,y>,x是邊的始點,y是邊的終點,因此<x,y><y,x>不同屬一條邊,有向邊也稱為弧(Arc)
圖的相關術語
1.無向完全圖
在一個無向圖中任意的兩個頂點之間均有邊相連線,則稱該圖為無向完全圖。
含有n個頂點的無向完全圖中有n(n-1)/2條邊。
2.有向完全圖
在一個有向圖中任意兩個頂點之間均有互為相反方向的兩條邊互相連線,則稱該圖為有向完全圖。
含有n個頂點的有向完全圖中有n(n-1)條邊
3.頂點的度
無向圖中頂點Vi的度是與該頂點相關聯邊的數目,記為TD(Vi)。
有向圖中,把以Vi為終點的邊的數目,稱為Vi的入度,記為ID(Vi),把以頂點Vi作為始點的邊的數目,稱為Vi的出度,記為OD(Vi)。頂點的度定義為該頂點的入度和出度之和,即TD(Vi)=ID(Vi)+OD(Vi)
4.子圖
若圖G=(V,E),G'=(V',E'),若V'是V的子集,E'是E的子集,則稱圖G'是G'的一個子圖。
5.路徑、簡單路徑和迴路
在圖G中,一個頂點Vp到另一個頂點Vq的邊的集合,則稱Vp到Vq存在一條路徑。路徑長度定義為該路徑上邊的數目
在有向圖中若路徑上除了Vp和Vq外沒有重複的結點,則稱該路徑為簡單路徑。起點與終點相同的路徑稱為簡單迴路或簡單環。
6.連通、連通圖、連通分量
若從一個頂點到另一個頂點互有路徑,則稱兩點是連通的。
無向圖中任意兩頂點連線,則稱該圖為連通圖,無向圖的極大連通子圖稱為連通分量 。連通圖的連通分量就是其本身,而非連通圖有多個連通分量。
7.強連通圖和強連通分量
在有向圖中任意兩個頂點都連通(其中任意一個頂點同時作為出度和入度),則稱該圖為強連通圖,有向圖的極大連通子圖稱為強連通分量,強連通圖的強連通分量就是其本身,而非強連通的有向圖有多個強連通分量。