一. 圖的概念
圖(Graph),是一種複雜的非線性表結構,圖的元素我們就叫做頂點(vertex),一個頂點可以與任意其他頂點建立連接關係,這種建立的關係叫做邊(edge),頂點相連接的邊的條數叫做度(degree) 。邊有方向的圖叫做有向圖 ,邊無方向的圖叫無向圖 。每條邊都有一個權重(weight),可以通過這個權重來表示 一些可度量的值 ,這樣的圖叫做帶權圖(weighted graph) 。
當我們需要表示多對多的關係時,這裏我們就用到了圖。
1.1 圖的舉例說明
圖是一種數據結構,其中結點可以具有零個或多個相鄰元素。兩個結點之間的連接稱爲邊。結點也可以稱爲頂點。
1.2 圖的常用概念
1)頂點(vertex)
2)邊(edge)
3)路徑
4)無向圖
5)有向圖
6)帶權圖
1.3 圖的表示方式
1.3.1 鄰接矩陣
鄰接矩陣是表示圖形中頂點之間相鄰關係的矩陣,對於n個頂點的圖而言,矩陣是的row和col表示的是1....n個點。
1.3.2 鄰接表
1)鄰接矩陣需要爲每個頂點都分配n個邊的空間,其實有很多邊都是不存在,會造成空間的一定損失。
2)鄰接表的實現只關心存在的邊,不關心不存在的邊。因此沒有空間浪費,鄰接表由數組+鏈表組成。