數據結構期末複習彙總

緒論

 

線性表

 

頭插法

 

尾插法

 

棧和隊列

棧:先進後出

隊列:先進先出

 

循環隊列

樹和二叉樹

 

在這裏插入圖片描述

二叉樹:每個節點最多有兩個分支(分支的度小於2)的樹結構,可爲空樹。
根節點:一棵樹最上面的節點稱爲根節點。
左右子樹:某個節點的左分支叫做左子樹,右分支叫做右子樹。
左右孩子:某個節點的左、右分支的根節點叫做該節點的左、右孩子。
兄弟節點:具有相同父節點的節點互爲兄弟節點。
節點的度:節點擁有的子樹數。
葉子節點:沒有任何子節點的節點稱爲葉子節點。
內部節點:非葉子節點稱爲內部節點。
根的層次:從根節點開始定義,根爲第一層,根的孩子爲第二層,如此計數,直到該結點爲止。
樹的深度和高度:二叉樹中節點的最大層次稱爲二叉樹的深度或高度。

森林:由m(m>=0)棵互不相交的樹的集合稱爲森林。如上圖只有一個樹也是森林。

一般樹與二叉樹的區別

  1. 樹的結點個數至少爲1,而二叉樹的結點個數可以爲0;
  2. 樹的結點最大度數沒有限制,而二叉樹結點的最大度數爲2;
  3. 樹的結點無左、右之分,而二叉樹的結點有左、右之分。

1)、完全二叉樹

在一棵二叉樹中,除了最後一層,都是滿的,並且最後一層或者是滿的,或者是右邊缺少連續若干節點,成爲完全二叉樹。

如圖所示:

在這裏插入圖片描述

2)、滿二叉樹

在這裏插入圖片描述

幾個點 來確定 是否是 連通圖 王道里的 ?

無向完全圖:邊的取值範圍 0-n(n-1)/2

有向完全圖:邊的取值範圍 0-n(n-1)

若圖中頂點數爲n,則它的生成樹含n-1條邊

若一個圖有n個頂點,並且邊數小於n-1,則此圖必是非連通圖。

鄰接矩陣:適用於稠密圖(浪費大量存儲空間)

鄰接表法:適用於稀疏圖(邊數少)

 

DFS  深度 先序  棧  時間複雜度     鄰接矩陣O(n^2) 鄰接表O(n+e)  n個頂點 e條邊

BFS 廣度  層序 隊列  時間複雜度      鄰接矩陣O(n^2) 鄰接表O(n+e)  n個頂點 e條邊

 

最小生成樹性質:

1.最小生成樹不唯一

2.最小生成樹的邊的權值之和唯一

3.最小生成樹的邊數爲頂點數減1

Prim算法 :適用於邊稠密的圖           像 最短路徑 Dijkstra算法  時間複雜度 O(n^2)

Kruskal算法:適用於邊稀疏而頂點多的圖        時間複雜度 O(eloge)

 

最短路徑   時間複雜度 O(n^2)

Floyd算法    時間複雜度 O(n^3) 適用於稠密圖 

 

查找

靜態查找:只查不改  (順序查找、二分查找)

動態查找:動態地插或刪的表

平均查找長度:ASL

 

順序查找:在線性表中查找,(在有序表或無序表查找)

查找成功:ASL=(n+1)/2

查找不成功:ASL=n+1

順序查找缺點:n大時,平均查找長度較大,效率低 優點:對數據元素存儲無要求

線性鏈表只能進行順序查找

二分查找:時間複雜度 O(long2n)

只適合順序存儲結構,不適合鏈式存儲結構,要先排序。

 

散列表:建立了關鍵字和存儲地址之間的直接映射關係。 時間複雜度 O(1)

再散列法

拉鍊法

影響散列表查找效率的三個因素:散列函數,處理衝突的方法和裝填因子

 

排序

 

都是內部排序

直接插入排序

空間複雜度 O(1)

時間複雜度:最好情況 O(n)

                   最壞情況 O(n^2)

                   平均情況  O(n^2)

穩定性:穩定排序

適用於:順序存儲和鏈式存儲的線性表

冒泡排序

空間複雜度 O(1)

時間複雜度:最好情況 O(n)

                   最壞情況 O(n^2)

                   平均情況  O(n^2)

穩定性:穩定排序

選擇排序

空間複雜度 O(1)

時間複雜度:始終是 O(n^2)

                   平均情況  O(n^2)

穩定性:不穩定排序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章