資料結構筆記 第六章

2021-09-02 01:28:47 字數 1172 閱讀 3769

一. 圖的儲存結構及實現

圖可以使用兩種儲存結構,分別是鄰接矩陣和鄰接表。

鄰接矩陣以矩陣的形式儲存圖所有頂點間的關係。鄰接矩陣具有以下特點:

1,鄰接矩陣是正矩陣,即橫縱維數相等。

2,矩陣的每一行或一列代表乙個頂點,行與列的交點對應這兩個頂點的邊。

3,矩陣的點代表邊的屬性,1代表有邊,0代表無邊,所以矩陣的對角線都是0,因為對角線上對應的橫縱軸代表相同的頂點,邊沒有意義。

4,如果是無向圖,那麼矩陣是對稱矩陣;如果是有向圖則不一定。

5,如果是有權圖,矩陣點數值可以是權值。

6,鄰接矩陣表示圖的關係非常清晰,但消耗空間較大。

鄰接表是以一組鍊錶來表示頂點間關係,有以下特點:

1,鄰接表示乙個有但鍊錶組成的陣列

2,圖中的每乙個頂點都有乙個鏈,陣列的大小等於圖中頂點的個數。

3,無向圖的鏈的第乙個元素是本頂點,後繼分別連線著和這個頂點相連的頂點;有向圖的鏈第乙個頂點是本頂點,後繼是以本頂點為起點的邊的終點。

4,如果是有權圖,可以在節點元素中設定權值屬性

5,鄰接鍊錶關係表示不如鄰接矩陣清晰,資料結構相對複雜,但節省空間。

二.最小生成樹

在一給定的無向圖g = (v, e) 中,(u, v) 代表連線頂點 u 與頂點 v 的邊(即),而 w(u, v) 代表此邊的權重,若存在 t 為 e 的子集(即)且為無迴圈圖,使得的 w(t) 最小,則此 t 為 g 的最小生成樹。

最小生成樹其實是最小權重生成樹的簡稱。

三.最短路徑

最短路徑問題是圖論研究中的乙個經典演算法問題, 旨在尋找圖(由結點和路徑組成的)中兩結點之間的最短路徑。 演算法具體的形式包括:

確定起點的最短路徑問題 - 即已知起始結點,求最短路徑的問題。

確定終點的最短路徑問題 - 與確定起點的問題相反,該問題是已知終結結點,求最短路徑的問題。在無向圖中該問題與確定起點的問題完全等同,在有向圖中該問題等同於把所有路徑方向反轉的確定起點的問題。

確定起點終點的最短路徑問題 - 即已知起點和終點,求兩結點之間的最短路徑。

四.aov網與拓撲排序

對aov網進行拓撲排序的基本思想是:

1)從aov網中選擇乙個沒有前驅的頂點輸出它;

2)從aov網中刪去該頂點,並且刪去所有以該頂點為尾的弧;

3)重複上述兩步,直到全部頂點都被輸出,或aov網中不存在沒有前驅的頂點。

第六章 資料結構

存放同一種資料型別的多個元素的容器,通過索引 記憶體偏移量 進行元素的訪問,陣列的大小一旦確定就不能改變。陣列其實也是線性表結構,在記憶體中陣列的元素是緊挨著連續儲存的。特點 查詢快 增刪慢 舉例 定義乙個陣列 int arr new int 想在2的後面插入乙個新的元素11,這時候就需要定義乙個新...

資料結構第六章樹

第六章 樹 1.樹是n個結點的有限集。n 0時稱為空樹。在任意乙個非空樹中 1 有且僅有乙個特定的稱為根的結點 2 當n 1時,其餘節點可分為m個互不相交的有限集,其中每乙個集合又是一棵樹,並成為根的子樹。2.結點分類 結點擁有的子樹稱為結點的度。度為0的結點稱為葉結點或終端節點 度不為0的結點稱為...

資料結構第六章小結

第六章主要學習圖,感覺有蠻多概念和演算法要去記住,可能會造成混淆 在學習過程中,感覺不是實打實的掌握,還得多看看書。思維導圖如下 個人小測中 1 使用鄰接矩陣a儲存無向網路,若i號頂點與j號頂點之間不存在邊,則a i j 值為多少 連通圖中 鄰接矩陣 連通為1,不連通為0,無向網路連通為權值,不連通...