數據結構(C語言版)(第三版)(微課版)
梁海英、李倩、劉大為
相關主題
商品描述
目錄大綱
第1 章 緒論 1
1.1 數據結構概述 1
1.2 常用術語和基本概念 3
1.3 數據類型 6
1.4 算法和算法復雜度 7
1.4.1 算法的重要性 7
1.4.2 時間復雜度 9
1.4.3 空間復雜度 11
1.5 本章實戰練習 12
1.6 本章小結 14
1.7 習題1 14
第2 章 線性表 17
2.1 線性表概述 17
2.2 線性表的順序存儲及運算的實現 18
2.2.1 線性表的順序存儲 18
2.2.2 順序表的基本操作 19
2.3 線性表的鏈式存儲及運算的實現 24
2.3.1 單鏈表 24
2.3.2 循環鏈表 33
2.3.3 雙向鏈表 34
2.4 本章實戰練習 38
2.4.1 順序表的常用操作 38
2.4.2 單鏈表的常用操作 41
2.4.3 通訊錄管理 44
2.5 本章小結 49
2.6 習題2 50
第3 章 棧和隊列 55
3.1 棧 55
3.1.1 棧的定義 55
3.1.2 棧的順序存儲與操作 56
3.1.3 棧的鏈式存儲與操作 60
3.2 隊列 62
3.2.1 隊列的定義 62
3.2.2 隊列的順序存儲與操作 62
3.2.3 隊列的鏈式存儲與操作 66
3.3 本章實戰練習 68
3.3.1 top 為指針且指向棧頂元素的
下一個位置 68
3.3.2 top 為整數且指向棧頂元素的
當前位置 70
3.3.3 棧的應用——數制轉換 72
3.3.4 順序隊列的基本操作 74
3.3.5 循環隊列設置不同隊空與
隊滿條件的解決方案 76
3.3.6 鏈隊列的基本操作 78
3.4 本章小結 81
3.5 習題3 82
第4 章 特殊矩陣和廣義表 87
4.1 特殊矩陣及其壓縮存儲 87
4.1.1 規律分佈的特殊矩陣的
壓縮存儲 88
4.1.2 稀疏矩陣及其壓縮存儲 90
4.2 廣義表 93
4.2.1 廣義表的定義 93
4.2.2 廣義表的常用表示及
基本運算 93
4.3 本章實戰練習 95
4.4 本章小結 98
4.5 習題4 99
第5 章 樹 101
5.1 樹的概念 101
5.1.1 樹的定義與特點 101
5.1.2 樹的基本術語 102
5.2 二叉樹 104
5.2.1 二叉樹的定義 104
5.2.2 二叉樹的性質 107
5.3 二叉樹的存儲結構 108
5.3.1 二叉樹的順序存儲 108
5.3.2 二叉樹的鏈式存儲與操作 109
5.4 二叉樹的遍歷 111
5.4.1 遍歷算法 112
5.4.2 線索二叉樹 115
5.5 樹與森林 119
5.5.1 樹和森林的存儲 119
5.5.2 二叉樹、樹和森林的轉換 122
5.5.3 樹和森林的遍歷 124
5.6 哈夫曼樹 124
5.6.1 哈夫曼樹的定義 124
5.6.2 哈夫曼樹的存儲定義 125
5.6.3 哈夫曼樹的構造算法 125
5.6.4 哈夫曼編碼 127
5.7 本章實戰練習 128
5.7.1 二叉樹的基本操作 128
5.7.2 線索二叉樹的操作 133
5.7.3 哈夫曼樹的構造 136
5.8 本章小結 138
5.9 習題5 138
第6 章 圖 149
6.1 圖的定義和基本術語 149
6.1.1 圖的定義 149
6.1.2 圖的基本術語 150
6.2 圖的存儲與操作 153
6.2.1 鄰接矩陣 154
6.2.2 鄰接表 157
6.3 圖的遍歷 160
6.3.1 深度優先遍歷算法 160
6.3.2 廣度優先遍歷算法 162
6.4 圖與最小生成樹 164
6.4.1 生成樹和森林的概念 164
6.4.2 最小生成樹 166
6.5 最短路徑 170
6.5.1 單源點到其餘各頂點的
最短路徑 170
6.5.2 任意源點之間的最短路徑 173
6.6 AOV 網與拓撲排序 173
6.6.1 AOV 網 174
6.6.2 拓撲排序 175
6.7 AOE 網與關鍵路徑 176
6.7.1 AOE 網 176
6.7.2 關鍵路徑 177
6.8 本章實戰練習 180
6.8.1 圖的鄰接矩陣操作 180
6.8.2 圖的鄰接表操作 184
6.8.3 利用鄰接矩陣實現連通圖的
深度優先遍歷 188
6.8.4 利用鄰接表實現連通圖的
深度優先遍歷 190
6.8.5 利用鄰接矩陣實現連通圖的
廣度優先遍歷 192
6.8.6 利用鄰接表實現連通圖的
廣度優先遍歷 195
6.8.7 普里姆最小生成樹算法 198
6.8.8 迪傑斯特拉最短路徑算法 201
6.9 本章小結 203
6.10 習題6 204
第7 章 查找 211
7.1 查找的基本概念 211
7.2 靜態查找算法 213
7.2.1 順序查找 213
7.2.2 折半查找 215
7.3 動態查找表 218
7.4 哈希表 222
7.4.1 哈希表的定義 222
7.4.2 哈希函數的構造 222
7.4.3 處理沖突的方法 224
7.4.4 哈希表的查找和性能 226
7.5 本章實戰練習 227
7.5.1 順序查找算法 227
7.5.2 折半查找算法 228
7.5.3 二叉排序樹查找算法 229
7.6 本章小結 231
7.7 習題7 231
第8 章 排序 235
8.1 排序的基本概念 235
8.2 插入排序算法 236
8.2.1 直接插入排序 236
8.2.2 折半插入排序 238
8.2.3 希爾排序 239
8.3 交換排序算法 240
8.3.1 冒泡排序 240
8.3.2 快速排序 241
8.4 選擇排序算法 243
8.4.1 直接選擇排序 244
8.4.2 堆排序 245
8.5 歸並排序算法 247
8.6 排序算法的比較 249
8.7 本章實戰練習 250
8.8 本章小結 255
8.9 習題8 255
參考文獻 259