一、圖的定
在說圖的定義之前 先要說明一下:
線性表中我們把數據元素叫做元素,樹中數據元素叫做結點,在圖中數據元素,我們稱之爲頂點。
下面說一下圖的定義:
圖是由頂點的有窮非空集合和頂點之間的集合組成,通常表示爲:G(V,E),其中,G表示一個圖,V是圖G中頂點的集合,E是圖G中邊的集合。
注意:圖中的 頂點集合不允許爲空,但是邊集合允許爲空。
各種圖的定義:
1.無向圖
兩個頂點之前的邊沒有方向,稱爲無向邊,改圖中所有的邊都是由無向邊組成的圖,叫做無向圖。
該圖的表示法:
G1(V1,{E1})
頂點集合:V1={A,B,C,D}; 邊集合:E1{(A,B),(B,C),(C,D),(D,A),(A,C)}
2.有向圖
改圖所有的邊都是由有向邊構成
有向邊又叫弧,例如下圖頂點B到A的邊就有方向,則稱這條邊有方向,也稱爲弧,B是弧頭,A稱弧尾,寫成<A,B>
改圖的表示爲:G2=(V2,{E2})
頂點集合:V2={A,B,C,D}
弧集合:E2={<A,D>,<B,A>,<C,A>,<B,C>}
在無向圖中,如果任意兩個頂點之間的都存在邊,則稱該圖爲無向完全圖。
共有n(n-1)/2條邊
在有向圖中,如果任意兩個頂點之間都存在方向互爲相反的兩條弧,則稱改圖爲有向完全圖。
共有n(n-1)條邊
有些圖的邊或弧具有與它相關的數字,這種與圖的邊或弧相關的數叫做權。這些帶權的圖通常叫做網。
二、圖的存儲結構
1.圖的鄰接矩陣
是用兩個數組來表示,一個一維數組來存儲圖的頂點信息,一個二維數組存儲圖中的邊或弧的信息。
第一個是無向圖
第二個是有向圖
第三個是帶有權值的有向圖
鄰接表
定義:數組與鏈表相結合的存儲方法叫做鄰接表。
無向圖的鄰接表
有向圖的逆鄰接表