數(shù)據(jù)結(jié)構(gòu)與算法分析(C++語言版 第2版)
定 價:69.8 元
叢書名:21世紀高等教育計算機規(guī)劃教材
- 作者:張琨 張宏 朱保平
- 出版時間:2021/8/1
- ISBN:9787115554062
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.12
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:128開
本書是工業(yè)和信息化部“十二五”規(guī)劃教材,全書借鑒了國內(nèi)外高等院!皵(shù)據(jù)結(jié)構(gòu)”相關(guān)教材,吸收了當代計算機領(lǐng)域成果。內(nèi)容鳥瞰全貌,刪減陳舊,反映新知,并在相關(guān)章節(jié)增加了典型習(xí)題。
本書共10章,介紹了數(shù)據(jù)結(jié)構(gòu)的基本理論及方法,主要有緒論、線性表、棧和隊列、串、數(shù)組和廣義表、樹和二叉樹、圖、查找、內(nèi)部排序,以及算法設(shè)計與分析等內(nèi)容。本書配備了微課視頻、演示動畫,掃碼即可觀看,同時,還提供課堂教學(xué)指導(dǎo)、習(xí)題課教學(xué)指導(dǎo)、實驗教學(xué)指導(dǎo)、自學(xué)輔導(dǎo)、綜合訓(xùn)練等資源。
本書可作為高等學(xué)校計算機科學(xué)與技術(shù)、軟件工程等專業(yè)的本科生或研究生的教材,也可作為相關(guān)領(lǐng)域工程技術(shù)人員的參考書。
內(nèi)容全面:介紹了數(shù)據(jù)結(jié)構(gòu)的基本理論與方法,包括線性表、棧和隊列、串、數(shù)組和廣義表、樹和二叉樹、圖、查找、內(nèi)部排序等,內(nèi)容全面,循序漸進。
案例豐富:從應(yīng)用出發(fā),結(jié)合大量實際案例,對概念與算法進行詳盡描述,加深學(xué)生對數(shù)據(jù)結(jié)構(gòu)基本概念、原理和方法的理解。
插圖易懂:在闡述基本概念、基本理論和算法原理時,配有豐富的插圖,以直觀的方式清晰解釋復(fù)雜的算法程序,易于理解。
代碼詳盡:基于C++語言,提供了詳盡的算法代碼,且所有算法和實例程序都在VC++6.0環(huán)境下編譯通過并運行正確。
習(xí)題完備:在每一章末尾都配有圍繞知識點和難點的習(xí)題,且習(xí)題題型多樣,難度適中,便于鞏固理論知識。
應(yīng)用突出:倡導(dǎo)從實用性和實踐性角度學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),強化算法的實踐與應(yīng)用,解決學(xué)生中普遍存在的“只懂概念,不會編程”的問題。
張琨,南京理工大學(xué)計算機學(xué)院教授,博士生導(dǎo)師,現(xiàn)任計算機科學(xué)與工程學(xué)院副院長。目前的研究領(lǐng)域主要包括:復(fù)雜網(wǎng)絡(luò)理論與應(yīng)用、可信計算、網(wǎng)絡(luò)與信息安全、軟件工程。
第 1章 緒論1
1.1數(shù)據(jù)結(jié)構(gòu)的概念 1
1.1.1 數(shù)據(jù)結(jié)構(gòu)的發(fā)展 1
1.1.2 什么是數(shù)據(jù)結(jié)構(gòu) 2
1.1.3 數(shù)據(jù)結(jié)構(gòu)的研究對象 4
1.1.4 數(shù)據(jù)結(jié)構(gòu)相關(guān)概念及術(shù)語 5
1.2數(shù)據(jù)類型和抽象數(shù)據(jù)類型 8
1.2.1 數(shù)據(jù)類型 8
1.2.2 抽象數(shù)據(jù)類型 9
1.3 算法和算法分析 11
1.3.1 算法特性 11
1.3.2 算法設(shè)計的要求 11
1.3.3 算法的性能分析與度量 12
1.4 并發(fā)數(shù)據(jù)結(jié)構(gòu)概念 16
1.4.1并發(fā)的概念 18
1.4.1并發(fā)的途徑 18
1.4.2并發(fā)數(shù)據(jù)結(jié)構(gòu)的設(shè)計原則 18
習(xí)題一 18
第 2章 線性表 23
2.1 線性表的基本概念 23
2.1.1 線性表的概念 23
2.1.2 線性表的抽象數(shù)據(jù)類型定義 24
2.2 線性表的順序存儲結(jié)構(gòu) 27
2.2.1 線性表的順序存儲表示 27
2.2.2順序表的類定義和基本操作 28
2.2.3順序表的應(yīng)用 35
2.2.4 順序表的特點 36
2.3 線性表的鏈式存儲結(jié)構(gòu) 36
2.3.1單鏈表 37
2.3.2 靜態(tài)鏈表 43
2.3.3循環(huán)鏈表 49
2.3.4雙向鏈表 50
2.3.5 并發(fā)鏈表 51
2.4 線性表的應(yīng)用:一元多項式的表示及運算 52
2.4.1 一元多項式的表示 53
2.4.2 一元多項式的實現(xiàn) 54
習(xí)題二 58
第3章 棧和隊列 62
3.1棧的基本概念 62
3.1.1 棧的概念 62
3.1.2 棧的抽象數(shù)據(jù)類型 63
3.2 棧的順序存儲結(jié)構(gòu)及實現(xiàn) 63
3.2.1 順序棧的概念 64
3.2.2 順序棧的類定義和基本操作 64
3.2.3 順序棧的應(yīng)用 65
3.3 棧的鏈式存儲結(jié)構(gòu)及實現(xiàn) 71
3.3.1 鏈棧的概念 71
3.3.2 鏈棧的類定義和基本操作 71
3.3.3 并發(fā)棧 72
3.4 隊列的基本概念 75
3.4.1 隊列的概念 75
3.4.2 隊列的抽象數(shù)據(jù)類型 75
3.5 隊列的順序存儲 76
3.5.1 循環(huán)隊列 77
3.5.2 循環(huán)隊列的類定義和基本操作 78
3.6 隊列的鏈式存儲 79
3.6.1 鏈隊列的概念 79
3.6.2 鏈隊列的類定義和基本操作 80
3.6.3 鏈隊列的應(yīng)用 81
3.6.4 并發(fā)隊列 86
習(xí)題三 86
第4章 串 90
4.1 串的基本概念 90
4.1.1 串的概念 90
4.1.2 串的抽象數(shù)據(jù)類型 90
4.2 串的表示與實現(xiàn) 92
4.2.1 定長順序存儲表示 92
4.2.2 堆分配存儲表示 94
4.2.3 鏈式存儲表示 96
4.3 串的模式匹配 96
4.3.1 模式匹配方法BF 97
4.3.2 模式匹配方法KMP 98
習(xí)題四 100
第5章 數(shù)組和廣義表 104
5.1 數(shù)組的基本概念 104
5.1.1 數(shù)組的概念 104
5.1.2 數(shù)組的抽象數(shù)據(jù)類型 105
5.2 數(shù)組的存儲結(jié)構(gòu) 105
5.3 矩陣的壓縮存儲 108
5.3.1 特殊矩陣的壓縮存儲 108
5.3.2 稀疏矩陣的壓縮存儲 110
5.4 廣義表的基本概念 118
5.4.1 廣義表的概念 118
5.4.2 廣義表的抽象數(shù)據(jù)類型 119
5.4.3 廣義表的存儲結(jié)構(gòu)和類定義 120
5.4.4 廣義表的遞歸算法 121
習(xí)題五 123
第6章 樹和二叉樹 127
6.1 樹 127
6.1.1 樹的概念 127
6.1.2 基本術(shù)語 128
6.1.3 樹的抽象數(shù)據(jù)類型 129
6.1.4 樹的性質(zhì) 131
6.1.5 樹的存儲結(jié)構(gòu) 132
6.1.6 樹的遍歷 135
6.1.7 樹的應(yīng)用 136
6.2 森林 138
6.2.1 森林的存儲結(jié)構(gòu) 138
6.2.2 森林的遍歷 140
6.3 二叉樹 140
6.3.1 二叉樹的概念 140
6.3.2 二叉樹的性質(zhì) 141
6.3.3 二叉樹的抽象數(shù)據(jù)類型 145
6.3.4 二叉樹的存儲結(jié)構(gòu) 148
6.3.5 遍歷二叉樹 150
6.3.6 線索二叉樹 162
6.4 樹、森林與二叉樹的轉(zhuǎn)換 169
6.4.1 樹與二叉樹的轉(zhuǎn)換 169
6.4.2 森林與二叉樹的轉(zhuǎn)換 170
6.5 堆 172
6.6 哈夫曼樹和哈夫曼編碼 173
6.6.1 哈夫曼樹的概念 173
6.6.2 哈夫曼樹的構(gòu)造 174
6.6.3 哈夫曼編碼 177
習(xí)題六 179
第7章 圖 182
7.1 圖的基本概念 182
7.1.1 圖的概念 182
7.1.2 圖的基本術(shù)語 183
7.1.3 圖的抽象數(shù)據(jù)類型 187
7.2 圖的存儲結(jié)構(gòu) 188
7.2.1 圖的順序存儲結(jié)構(gòu)-鄰接矩陣 188
7.2.2 圖的鏈式存儲結(jié)構(gòu) 191
7.3 圖的遍歷 196
7.3.1 深度優(yōu)先搜索 196
7.3.2 廣度優(yōu)先搜索 197
7.3.3 連通分量和重連通分量 198
7.4 小生成樹 201
7.4.1 小生成樹的定義 202
7.4.2 小生成樹的構(gòu)造算法 202
7.5 有向無環(huán)圖及其應(yīng)用 207
7.5.1 AOV網(wǎng)與拓撲排序 208
7.5.2 AOE網(wǎng)與關(guān)鍵路徑 211
7.6 短路徑 218
7.6.1 單源短路徑 218
7.6.2 每對頂點間的短路徑 221
習(xí)題七 223
第8章 查找 226
8.1 查找的基本概念 226
8.2 靜態(tài)查找表 228
8.2.1 順序查找 228
8.2.2 有序表的查找 230
8.2.3 分塊查找 232
8.3 動態(tài)查找表 234
8.3.1 二叉排序樹 234
8.3.2 平衡二叉樹 241
8.3.3 B_樹 248
8.3.4 并發(fā)查找樹 256
8.4 哈希表 256
8.4.1 哈希表的概念 256
8.4.2 哈希函數(shù) 257
8.4.3 處理沖突的方法 259
8.4.4 哈希查找算法及分析 261
8.4.5 并發(fā)哈希表及其應(yīng)用 263
習(xí)題八 264
第9章 內(nèi)部排序 267
9.1 排序的基本概念 267
9.2 插入排序 269
9.2.1 直接插入排序 269
9.2.2 折半插入排序 272
9.2.3 表插入排序 274
9.2.4 希爾排序 278
9.3 交換排序 280
9.3.1 冒泡排序 280
9.3.2 快速排序 282
9.4 選擇排序 286
9.4.1 簡單選擇排序 286
9.4.2 樹形選擇排序 289
9.4.3 堆排序 291
9.5 歸并排序 295
9.6 基數(shù)排序 298
9.6.1 多關(guān)鍵字的排序 298
9.6.2 鏈式基數(shù)排序 298
9.7 各種內(nèi)部排序方法的比較討論 302
習(xí)題九 303
第 10章 算法設(shè)計與分析 306
10.1 分治法 306
10.2 回溯法 308
10.3 貪心算法 313
10.4 動態(tài)規(guī)劃法 315
10.5 分支限界法 319
習(xí)題十 325
附錄 詞匯索引 327