圖G是由一個頂點集和一個邊集構成的數據結構數據結構
G=(V,E)數據
其中集合
V是由頂點組成的一個非空有限集合:{V0, V1, V2 ... Vn-1}生成
E是由V中頂點的對偶構成的有限集合:{(V0, V1), (V3, V4) ... },E若是爲空,則圖當中只有頂點而沒有邊
邊有2種狀況,有向和無向
若是邊是無向的,(Vi, Vj) = (Vj, Vi),該圖稱爲無向圖
若是邊是有向的,<Vi, Vj> != (Vj, Vi),該圖稱爲有向圖,這個時候,邊稱爲弧,<Vi, Vj>當中Vi稱爲弧尾,Vj稱爲弧頭
鄰接點
無向圖中,若是存在一條邊(Vi, Vj),則頂點Vi和Vj互爲鄰接點
有向圖中,若是存在一條弧<Vi, Vj>,能夠認爲是Vi鄰接到Vj,Vj鄰接自Vi,Vi和Vj互爲鄰接點
頂點的度、入度和出度
無向圖中,與頂點V相連的邊的個數,稱爲頂點的度,記作D(V)
有向圖中,頂點V的度又分爲出度和入度2個部分:
以頂點V爲終點的弧的個數,稱爲V的入度,記作ID(V)
以頂點V爲起點的弧的個數,稱爲V的出度,記作OD(V)
而D(V) = ID(V) + OD(V)
不管是有向圖仍是無向圖,一個圖的定點數n,邊(弧)數e和每一個頂點的度Di之間知足如下關係式:
邊(弧)數e = 全部頂點度之和 / 2
徹底圖、稠密圖和稀疏圖
若是圖G爲無向圖,任意兩個頂點之間都有一條邊,則G稱爲無向徹底圖
若是有一個有n個頂點的無向徹底圖,則它每一個頂點的度數應該都=n-1,那麼它的各個頂點度數之和應該是n*(n-1),它的邊數應該就是n*(n-1)/2,這裏其實就是一個組合問題
若是圖G爲有向圖,任意兩個頂點之間都有二條弧,則G稱爲有向徹底圖
有向徹底圖的弧數應該是n*(n-1),這裏其實就是一個排列問題。
若是一個圖的邊數接近徹底圖,稱之爲稠密圖
若是一個圖的邊數不多,稱之爲稀疏圖
子圖
如今有2個圖 G=(V, E), G1=(V1, E1),若是V1是V的子集,E1是E的子集,則G1是G的子圖。
路徑、迴路和路徑長度
在無向圖G當中,若是存在一個頂點序列{V1, V2, V3, V4, V5, V6},而(V1, V2), (V2, V3), (V3, V4), (V4, V5), (V5, V6)均爲圖G的邊,那麼這個頂點序列,稱爲V1到V6的路徑,若是圖G是有向的,則路徑是有向的。
路徑長度=路徑當中邊或者弧的個數
若是一個路徑當中,不存在重複頂點,稱爲簡單路徑
若是一個路徑當中,起點=終點,稱爲迴路或環
除了起點和終點相同外,沒有其餘的重複頂點,稱爲簡單迴路或簡單環
連通、連通份量和連通圖、生成樹
無向圖G當中
若是頂點Vi到頂點Vj之間,至少有一條路徑,則成Vi和Vj是連通的。
若是圖中任意兩個頂點都連通,稱爲連通圖,不然,稱爲非連通圖
非連通途中,任意一個極大連通子圖,稱爲它的一個連通份量,
在連通圖當中,連通份量只有一個,即其自身。而非連通圖有多個連通份量。
在一個連通圖當中,包含所有頂點的極小連通子圖,稱爲該連通圖的生成樹。
強連通、強連通份量和強連通圖
有向圖G當中
2個頂點Vi和Vj,若是既存在從Vi到Vj的路徑,也存在從Vj到Vi的路徑,則成Vi和Vj之間是強連通的。
若是途中,任意兩個頂點都是強連通的,則圖G稱爲強連通圖,不然稱爲非強連通圖
在非強連通圖中,任意一個極大強連通子圖,稱爲它的一個強連通份量
任意一個強連通圖只有一個強連通份量,即其自身,而非強連通圖,有多個強連通份量。
權、帶權圖、有向網和無向網
在圖當中,每一條邊(弧)能夠帶一個數值,稱爲權
每條邊都有權的無向圖稱爲帶權無向圖,也成爲無向網
每條弧都有權的有向圖稱爲帶權有向圖,也成爲有向網