算法與數(shù)據(jù)結(jié)構(gòu)(C++語言版)(第2版)
定 價(jià):69 元
- 作者:馮廣慧
- 出版時(shí)間:2023/8/1
- ISBN:9787121462139
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP301.6;TP311.12
- 頁碼:344
- 紙張:
- 版次:01
- 開本:16開
本書主要介紹幾種經(jīng)典數(shù)據(jù)結(jié)構(gòu)和算法,按照“線性結(jié)構(gòu)、樹結(jié)構(gòu)、圖結(jié)構(gòu)、集合結(jié)構(gòu)”四大模塊循序漸進(jìn)地展開,涵蓋全國碩士研究生招生考試計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)考試大綱的核心知識(shí)點(diǎn)。本書特色內(nèi)容:闖關(guān)模塊,以真題作為闖關(guān)任務(wù),夯實(shí)理論基礎(chǔ);算法拓展模塊,以經(jīng)典算法作為拓展訓(xùn)練任務(wù),提升實(shí)踐能力;價(jià)值引領(lǐng)模塊(見電子課件),將思政元素與基本概念、理論和實(shí)例相融合,沁潤品格、提升素養(yǎng);豐富的配套資源,登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊(cè)后免費(fèi)下載。本書將C++作為數(shù)據(jù)結(jié)構(gòu)的算法描述語言,將數(shù)據(jù)結(jié)構(gòu)與面向?qū)ο蠹夹g(shù)有機(jī)結(jié)合。書中的算法講解都有完整的C++代碼實(shí)現(xiàn),并在Visual Studio 2010環(huán)境下編譯通過。本書既可作為應(yīng)用型、職業(yè)型高等院校計(jì)算機(jī)及相關(guān)專業(yè)的數(shù)據(jù)結(jié)構(gòu)課程教材,也可作為考研、專升本考試等的參考書,還可作為工程技術(shù)人員的工具書。
馮廣慧,2004年畢業(yè)于吉林大學(xué)獲工學(xué)學(xué)士學(xué)位,2007年畢業(yè)于吉林大學(xué)研究生院獲工學(xué)碩士學(xué)位,自2007年起一直從事于《算法與數(shù)據(jù)結(jié)構(gòu)》課程的一線教學(xué)和考研輔導(dǎo)工作,對(duì)該課程有深入研究,參編《C語言程序設(shè)計(jì)教程》、《Access數(shù)據(jù)庫程序設(shè)計(jì)真題考點(diǎn)分析與講解》等多部著作。
第1章 概論 1
1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1
1.2 基本概念和術(shù)語 4
1.3 算法和算法分析 7
1.3.1 算法的定義及特性 7
1.3.2 算法的設(shè)計(jì)要求 8
1.3.3 算法效率的衡量方法 9
1.3.4 算法的時(shí)間復(fù)雜度 9
1.3.5 算法的空間復(fù)雜度 15
1.4 抽象數(shù)據(jù)類型 16
習(xí)題1 18
第2章 線性表 19
2.1 線性表的類型定義 19
2.1.1 線性表的概念 19
2.1.2 線性表的抽象數(shù)據(jù)類型 20
2.2 線性表的順序表示和實(shí)現(xiàn) 21
2.2.1 線性表的順序表示 21
2.2.2 順序表基本運(yùn)算的實(shí)現(xiàn) 22
2.3 線性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn) 26
2.3.1 線性表的鏈?zhǔn)奖硎?27
2.3.2 單鏈表上基本運(yùn)算的實(shí)現(xiàn) 30
2.4 雙鏈表 37
2.5 循環(huán)鏈表 41
2.6 線性表實(shí)現(xiàn)方法的比較 43
2.7 算法拓展 44
習(xí)題2 48
第3章 棧和隊(duì)列 51
3.1 棧 51
3.1.1 棧的類型定義 51
3.1.2 順序棧的表示和實(shí)現(xiàn) 53
3.1.3 鏈棧的表示和實(shí)現(xiàn) 55
3.2 棧的應(yīng)用舉例 57
3.2.1 十進(jìn)制數(shù)轉(zhuǎn)換為其他進(jìn)制數(shù) 57
3.2.2 表達(dá)式中括號(hào)的匹配檢查 58
3.2.3 表達(dá)式求值 59
3.2.4 利用棧消除遞歸 67
3.3 隊(duì)列 71
3.3.1 隊(duì)列的類型定義 71
3.3.2 循環(huán)隊(duì)列—隊(duì)列的順序表示和實(shí)現(xiàn) 73
3.3.3 鏈隊(duì)列—隊(duì)列的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn) 76
3.4 算法拓展 78
習(xí)題3 81
第4章 串 83
4.1 串的基本概念 83
4.2 串的表示和實(shí)現(xiàn) 84
4.2.1 串的順序存儲(chǔ)結(jié)構(gòu) 84
4.2.2 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 87
4.3 串的模式匹配 88
4.3.1 樸素的模式匹配算法 88
4.3.2 KMP算法 89
習(xí)題4 94
第5章 數(shù)組 96
5.1 基本概念 96
5.2 矩陣的壓縮存儲(chǔ) 99
5.2.1 特殊矩陣 99
5.2.2 稀疏矩陣 102
5.3 算法拓展 109
習(xí)題5 112
第6章 樹和二叉樹 115
6.1 樹的概念 115
6.2 二叉樹的概念和性質(zhì) 117
6.2.1 二叉樹的概念和抽象數(shù)據(jù)類型 117
6.2.2 二叉樹的性質(zhì) 119
6.3 二叉樹的表示和實(shí)現(xiàn) 121
6.3.1 二叉樹的存儲(chǔ)結(jié)構(gòu) 121
6.3.2 二叉樹的遍歷 123
6.3.3 二叉樹的其他基本運(yùn)算 130
6.4 樹和森林 132
6.4.1 樹的存儲(chǔ)結(jié)構(gòu) 133
6.4.2 樹、森林和二叉樹的相互轉(zhuǎn)換 135
6.4.3 樹和森林的遍歷 138
6.4.4 樹和森林的其他基本運(yùn)算 141
*6.5 線索二叉樹 143
6.6 算法拓展 145
習(xí)題6 145
第7章 樹和二叉樹的應(yīng)用 148
*7.1 表達(dá)式樹 148
7.2 哈夫曼樹和哈夫曼編碼 153
7.2.1 哈夫曼樹 153
7.2.2 哈夫曼編碼 157
7.3 堆和優(yōu)先級(jí)隊(duì)列 160
7.3.1 堆 160
7.3.2 優(yōu)先級(jí)隊(duì)列 161
*7.4 并查集 167
7.5 算法拓展 169
習(xí)題7 171
第8章 圖 173
8.1 圖的概念 173
8.2 圖的存儲(chǔ)結(jié)構(gòu) 177
8.2.1 鄰接矩陣 177
8.2.2 鄰接表 181
*8.2.3 十字鏈表 186
*8.2.4 鄰接多重表 187
8.3 圖的遍歷 187
8.3.1 深度優(yōu)先遍歷 187
8.3.2 廣度優(yōu)先遍歷 190
8.3.3 圖的連通分量和生成樹 192
8.4 算法拓展 193
習(xí)題8 194
第9章 圖的應(yīng)用 197
9.1 最小生成樹 197
9.1.1 最小生成樹的概念 197
9.1.2 Prim算法 198
9.1.3 Kruskal算法 201
9.2 有向無環(huán)圖及其應(yīng)用 204
9.2.1 拓?fù)渑判?205
9.2.2 關(guān)鍵路徑 210
9.3 最短路徑 216
9.3.1 單源點(diǎn)最短路徑 216
9.3.2 每對(duì)頂點(diǎn)之間的最短路徑 220
9.4 算法拓展 223
習(xí)題9 224
第10章 集合與查找 226
10.1 基本概念 226
10.2 靜態(tài)查找表上的查找 227
10.2.1 順序查找 227
10.2.2 折半查找 229
10.2.3 分塊查找 233
10.3 動(dòng)態(tài)查找表上的查找 234
10.3.1 二叉查找樹 234
10.3.2 平衡二叉樹 241
*10.3.3 B樹 254
*10.3.4 B+樹 259
*10.3.5 字典樹 260
10.4 算法拓展 261
習(xí)題10 264
第11章 散列表 267
11.1 散列表的概念 267
11.2 構(gòu)造散列函數(shù)的方法 268
11.2.1 直接定址法 268
11.2.2 折疊法 268
11.2.3 數(shù)字分析法 268
11.2.4 平方取中法 268
11.2.5 除留余數(shù)法 269
11.3 解決沖突的方法 269
11.3.1 閉散列法 269
11.3.2 開散列法 272
11.4 散列表的查找性能分析 272
11.5 散列表的實(shí)現(xiàn) 273
11.5.1 閉散列表的表示和實(shí)現(xiàn) 274
11.5.2 開散列表的表示和實(shí)現(xiàn) 278
11.5.3 閉散列表與開散列表的比較 281
習(xí)題11 281
第12章 排序 283
12.1 排序的基本概念 283
12.2 插入排序 284
12.2.1 直接插入排序 284
12.2.2 折半插入排序 285
12.2.3 希爾排序 285
12.3 交換排序 287
12.3.1 冒泡排序 287
12.3.2 快速排序 288
12.4 選擇排序 292
12.4.1 直接選擇排序 292
12.4.2 堆排序 292
*12.4.3 錦標(biāo)賽排序 295
12.5 歸并排序 296
*12.6 基數(shù)排序 298
12.7 各種內(nèi)部排序算法的比較 300
*12.8 外部排序 303
12.8.1 置換選擇排序 304
12.8.2 多路歸并排序 305
習(xí)題12 306
附錄A 情景項(xiàng)目 309
參考資料 313