1. 程式人生 > >數據結構——圖及算法簡介(二)

數據結構——圖及算法簡介(二)

森林 後繼 鄰接矩陣 數組 如果 結點 無重復 鄰接表 稀疏

圖(graph):是一種較線性表和樹更為復雜的數據結構,圖形結構中,結點之間的關系可以是任意的,圖中任意兩個數據元素之間都可能相關
線性表:數據元素之間僅有線性關系,每個數據元素只有一個直接前驅和一個直接後繼
樹:樹形結構中,數據元素之間有著明顯的層次關系,並且每一層上的數據元素可能和下一層中多個元素(即其孩子結點)相關,但只能和上一層中一個元素(即其雙親結點)相關

圖分為有向圖、無向圖,無向圖由定點和邊組成,有向圖有頂點和弧組成,弧分為弧頭、弧尾。

圖按照節點和邊(弧)的多少分為,稀疏圖、稠密圖,這兩者沒有具體界定只是個人感覺概念。任意兩個頂點之間都存在邊就叫完全圖,有向的叫有向完全圖,無重復的邊或者頂點到自身的邊叫簡單圖。

頂點之間有鄰接點、依附概念。無向圖頂點的邊數叫度,有向圖分為入度、出度。

圖上的邊、弧帶有權的叫網

頂點直接存在路徑,兩頂點直接存在路徑就說明是連通的。如果路徑能回到最初點就叫環,不重復的叫簡單路徑。任意兩點都是連通的叫連通圖,有向的叫強連通圖。圖中若包含子圖,子圖的最大連通就是連通分量,有向的稱為強連通分量。

無向圖中,連通且n個點,n-1條邊叫生成樹。有向圖中一頂點入度為0其余頂點入度為1叫有向樹,一個圖由若幹條有向樹組成叫生成森林。

圖的存儲方式:

1、鄰接矩陣存儲又稱為二維數組存儲:圖的鄰接矩陣(Adjacency Matrix)存儲方式是用兩個數組來表示圖。一個一維的數組儲圖中頂點信息,一個二維數組(稱為鄰接矩陣)存儲圖中的邊或弧的信息

待續

2、鄰接表存儲法:數組與鏈表相結合的存儲方法

3、十字鏈表存儲法

數據結構——圖及算法簡介(二)