第1章 緒論 1
1.1 什么是數據結構(定義) 1
1.2 數據結構的內容 9
1.3 算法 11
1.4 算法描述的工具 12
1.5 對算法作性能評價 16
1.6 關于數據結構的學習 21
習題 22
實習題 23
第2章 線性表 24
2.1 線性表的概念及運算 24
2.1.1 線性表的邏輯結構 24
2.1.2 線性表的抽象數據類型定義 25
2.2 線性表的順序存儲 26
2.2.1 線性表的順序存儲結構 26
2.2.2 線性表順序存儲結構上的基本運算 27
2.3 線性表的鏈式存儲 32
2.3.1 單鏈表 32
2.3.2 單鏈表上的基本運算 33
2.3.3 循環鏈表 41
2.3.4 雙向鏈表 43
*2.3.5 靜態鏈表 45
2.3.6 順序表和鏈表的比較 48
2.4 一元多項式的表示及相加 49
習題 53
實習題 55
第3章 限定性線性表——棧和隊列 56
3.1 棧 56
3.1.1 棧的定義 56
3.1.2 棧的表示和實現 57
3.1.3 棧的應用舉例 62
3.1.4 棧與遞歸的實現 68
3.2 隊列 74
3.2.1 隊列的定義 74
3.2.2 隊列的表示和實現 75
3.2.3 隊列的應用舉例 79
習題 82
實習題 83
第4章 串 85
4.1 串的定義 85
4.2 抽象數據類型串的實現 87
4.2.1 定長順序串 87
4.2.2 堆串 91
4.2.3 塊鏈串 96
4.3 串的應用舉例:文本編輯 96
習題 97
實習題 98
第5章 數組和廣義表 100
5.1 數組的定義和運算 100
5.2 數組的順序存儲和實現 101
5.3 特殊矩陣的壓縮存儲 104
5.3.1 三角矩陣 104
5.3.2 帶狀矩陣 105
5.3.3 稀疏矩陣 106
5.4 廣義表 116
5.4.1 廣義表的概念 116
5.4.2 廣義表的存儲結構 117
5.4.3 廣義表的操作實現 118
習題 120
實習題 120
第6章 樹和二叉樹 122
6.1 樹的概念與定義 122
6.2 二叉樹 124
6.2.1 二叉樹的定義與基本操作 124
6.2.2 二叉樹的性質 125
6.2.3 二叉樹的存儲結構 127
6.3 二叉樹的遍歷與線索化 129
6.3.1 二叉樹的遍歷 129
6.3.2 基于棧的遞歸消除 132
6.3.3 遍歷算法應用 135
6.3.4 線索二叉樹 140
6.4 樹、 森林和二叉樹的關系 144
6.4.1 樹的存儲結構 144
6.4.2 樹、 森林與二叉樹的相互轉換 146
6.4.3 樹與森林的遍歷 149
6.5 哈夫曼樹及其應用 150
6.5.1 哈夫曼樹 150
6.5.2 哈夫曼編碼 152
6.5.3 哈夫曼編碼算法的實現 154
習題 156
實習題 157
第7章 圖 159
7.1 圖的定義與基本術語 159
7.1.1 圖的定義 159
7.1.2 基本術語 161
7.2 圖的存儲結構 163
7.2.1 鄰接矩陣表示法 163
7.2.2 鄰接表表示法 166
7.2.3 十字鏈表 168
7.2.4 鄰接多重表 170
7.3 圖的遍歷 171
7.3.1 深度優先搜索 172
7.3.2 廣度優先搜索 175
7.4 圖的連通性問題 177
7.4.1 無向圖的連通分量 177
7.4.2 *小生成樹 178
7.5 有向無環圖的應用 182
7.5.1 拓撲排序 182
7.5.2 關鍵路徑 185
7.6 *短路徑 190
7.6.1 求某一頂點到其他各頂點的*短路徑 191
7.6.2 求任意一對頂點間的*短路徑 193
習題 195
實習題 197
第8章 查找 199
8.1 查找的基本概念 199
8.2 基于線性表的查找法 200
8.2.1 順序查找法 200
8.2.2 折半查找法 201
8.2.3 分塊查找法 203
8.3 基于樹的查找法 204
8.3.1 二叉排序樹 204
8.3.2 平衡二叉排序樹 210
8.3.3 B-樹 218
8.4 計算式查找法——哈希法 227
8.4.1 哈希函數的構造方法 227
8.4.2 處理沖突的方法 229
8.4.3 哈希表的查找過程 231
8.4.4 哈希法性能分析 232
習題 235
實習題 236
第9章 內部排序 237
9.1 排序的基本概念 237
9.2 插入類排序 238
9.2.1 直接插入排序 238
9.2.2 折半插入排序 240
9.2.3 表插入排序 241
9.2.4 希爾排序 241
9.3 交換類排序法 244
9.3.1 冒泡排序(相鄰比序法) 244
9.3.2 快速排序 246
9.4 選擇類排序法 248
9.4.1 簡單選擇排序 249
9.4.2 樹形選擇排序 250
9.4.3 堆排序 250
9.5 歸并排序 255
9.6 分配類排序 257
9.6.1 多關鍵字排序 258
9.6.2 鏈式基數排序 258
9.6.3 基數排序的順序表結構 262
9.7 各種排序方法的綜合比較 262
習題 263
實習題 265
第10章 外部排序 266
10.1 外存信息的特性 266
10.1.1 磁帶存儲器 266
10.1.2 磁盤存儲器 267
10.2 外排序的基本方法 269
10.2.1 磁盤排序 269
10.2.2 磁帶排序 274
習題 277
附錄 數據結構試題選編 278
附錄A 樣卷一:期末考試試題 278
附錄B 樣卷二:期末考試試題 281
附錄C 樣卷三:碩士研究生入學考試試題 284
附錄D 樣卷四:碩士研究生入學考試試題 286
參考文獻 288