算法與數(shù)據(jù)結(jié)構(gòu)(C++語(yǔ)言版)
定 價(jià):56 元
- 作者:馮廣慧 等
- 出版時(shí)間:2018/10/1
- ISBN:9787121350719
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP301.6;TP311.12
- 頁(yè)碼:344
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)按照“全國(guó)碩士研究生招生考試計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科聯(lián)考計(jì)算機(jī)學(xué)科專(zhuān)業(yè)基礎(chǔ)綜合考試大綱”的要求編寫(xiě),基本涵蓋所有知識(shí)點(diǎn),并加入部分高校及全國(guó)統(tǒng)一考試真題作為自測(cè)題,同時(shí)給出參考答案和題目解析。本書(shū)主要介紹各種常用的經(jīng)典數(shù)據(jù)結(jié)構(gòu)(如線(xiàn)性表、棧、隊(duì)列、串、數(shù)組、樹(shù)、圖、集合等)和算法,并在時(shí)間復(fù)雜度和空間復(fù)雜度之間進(jìn)行平衡與取舍。
本書(shū)將C++語(yǔ)言作為數(shù)據(jù)結(jié)構(gòu)的算法描述語(yǔ)言,將數(shù)據(jù)結(jié)構(gòu)與面向?qū)ο蠹夹g(shù)有機(jī)結(jié)合。書(shū)中的算法講解都有完整的C++代碼實(shí)現(xiàn),并在Visual Studio 2010環(huán)境下編譯通過(guò)。
馮廣慧,2004年畢業(yè)于吉林大學(xué)獲工學(xué)學(xué)士學(xué)位,2007年畢業(yè)于吉林大學(xué)研究生院獲工學(xué)碩士學(xué)位,自2007年起一直從事于《算法與數(shù)據(jù)結(jié)構(gòu)》課程的一線(xiàn)教學(xué)和考研輔導(dǎo)工作,對(duì)該課程有深入研究,參編《C語(yǔ)言程序設(shè)計(jì)教程》、《Access數(shù)據(jù)庫(kù)程序設(shè)計(jì)真題考點(diǎn)分析與講解》等多部著作。
第1章 概論 1
1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1
1.2 基本概念和術(shù)語(yǔ) 4
1.3 算法和算法分析 7
1.3.1 算法的定義及特性 7
1.3.2 算法的設(shè)計(jì)要求 8
1.3.3 算法效率的衡量方法 9
1.3.4 算法的時(shí)間復(fù)雜度 10
1.3.5 算法的空間復(fù)雜度 15
1.4 抽象數(shù)據(jù)類(lèi)型 16
習(xí)題 18
第2章 線(xiàn)性表 20
2.1 線(xiàn)性表的類(lèi)型定義 20
2.1.1 線(xiàn)性表的概念 20
2.1.2 線(xiàn)性表的抽象數(shù)據(jù)類(lèi)型 21
2.2 線(xiàn)性表的順序表示和實(shí)現(xiàn) 22
2.2.1 線(xiàn)性表的順序表示 22
2.2.2 順序表基本運(yùn)算的實(shí)現(xiàn) 23
2.3 線(xiàn)性表的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn) 28
2.3.1 線(xiàn)性表的鏈?zhǔn)奖硎?29
2.3.2 單鏈表上基本運(yùn)算的實(shí)現(xiàn) 32
2.4 雙鏈表 40
2.5 循環(huán)鏈表 44
2.6 線(xiàn)性表實(shí)現(xiàn)方法的比較 46
2.7 算法設(shè)計(jì)舉例 47
習(xí)題 52
第3章 棧和隊(duì)列 55
3.1 棧 55
3.1.1 棧的類(lèi)型定義 55
3.1.2 順序棧的表示和實(shí)現(xiàn) 57
3.1.3 鏈棧的表示和實(shí)現(xiàn) 60
3.2 棧的應(yīng)用舉例 62
3.2.1 十進(jìn)制數(shù)轉(zhuǎn)換為其他進(jìn)制數(shù) 62
3.2.2 表達(dá)式中括號(hào)的匹配檢查 63
3.2.3 表達(dá)式求值 64
3.2.4 利用棧消除遞歸 72
3.3 隊(duì)列 77
3.3.1 隊(duì)列的類(lèi)型定義 77
3.3.2 循環(huán)隊(duì)列—隊(duì)列的順序表示和
實(shí)現(xiàn) 78
3.3.3 鏈隊(duì)列—隊(duì)列的鏈?zhǔn)奖硎竞?實(shí)現(xiàn) 82
3.4 算法設(shè)計(jì)舉例 83
習(xí)題 87
第4章 串 90
4.1 串的基本概念 90
4.2 串的表示和實(shí)現(xiàn) 91
4.2.1 串的順序存儲(chǔ)結(jié)構(gòu) 91
4.2.2 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 94
4.3 串的模式匹配 95
4.3.1 樸素的模式匹配算法 95
4.3.2 KMP算法 96
習(xí)題 101
第5章 數(shù)組 104
5.1 數(shù)組的基本概念 104
5.2 矩陣的壓縮存儲(chǔ) 107
5.2.1 特殊矩陣 107
5.2.2 稀疏矩陣 110
5.3 算法設(shè)計(jì)舉例 117
習(xí)題 121
第6章 樹(shù)和二叉樹(shù) 124
6.1 樹(shù)的概念 124
6.2 二叉樹(shù)的概念和性質(zhì) 126
6.2.1 二叉樹(shù)的概念和抽象數(shù)據(jù)
類(lèi)型 126
6.2.2 二叉樹(shù)的性質(zhì) 129
6.3 二叉樹(shù)的表示和實(shí)現(xiàn) 131
6.3.1 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu) 131
6.3.2 二叉樹(shù)的遍歷運(yùn)算 133
6.3.3 二叉樹(shù)的其他基本運(yùn)算 140
6.4 樹(shù)和森林 142
6.4.1 樹(shù)的存儲(chǔ)結(jié)構(gòu) 143
6.4.2 樹(shù)、森林和二叉樹(shù)的相互
轉(zhuǎn)換 146
6.4.3 樹(shù)和森林的遍歷運(yùn)算 148
6.4.4 樹(shù)和森林的其他基本運(yùn)算 151
*6.5 線(xiàn)索二叉樹(shù) 154
6.5.1 線(xiàn)索二叉樹(shù)的概念 154
6.5.2 線(xiàn)索二叉樹(shù)的基本運(yùn)算 157
6.6 算法設(shè)計(jì)舉例 161
習(xí)題 162
第7章 樹(shù)和二叉樹(shù)的應(yīng)用 166
*7.1 表達(dá)式樹(shù) 166
7.2 哈夫曼樹(shù)和哈夫曼編碼 171
7.2.1 哈夫曼樹(shù) 171
7.2.2 哈夫曼編碼 175
7.3 堆和優(yōu)先級(jí)隊(duì)列 178
7.3.1 堆 178
7.3.2 優(yōu)先級(jí)隊(duì)列 179
*7.4 并查集 184
7.5 算法設(shè)計(jì)舉例 187
習(xí)題 189
第8章 圖 191
8.1 圖的概念 191
8.2 圖的存儲(chǔ)結(jié)構(gòu) 196
8.2.1 鄰接矩陣 196
8.2.2 鄰接表 200
*8.2.3 十字鏈表 205
*8.2.4 鄰接多重表 205
8.3 圖的遍歷 206
8.3.1 深度優(yōu)先遍歷 207
8.3.2 廣度優(yōu)先遍歷 209
8.3.3 圖的連通分量和生成樹(shù) 212
習(xí)題 213
第9章 圖的應(yīng)用 217
9.1 最小生成樹(shù) 217
9.1.1 最小生成樹(shù)的概念 217
9.1.2 Prim算法 218
9.1.3 Kruskal算法 222
9.2 有向無(wú)環(huán)圖及其應(yīng)用 225
9.2.1 拓?fù)渑判?225
9.2.2 關(guān)鍵路徑 230
9.3 最短路徑 236
9.3.1 單源點(diǎn)最短路徑 236
9.3.2 每對(duì)頂點(diǎn)之間的最短路徑 240
習(xí)題 243
第10章 集合與查找 247
10.1 基本概念 247
10.2 靜態(tài)查找表上的查找 248
10.2.1 順序查找 248
10.2.2 折半查找 250
10.2.3 分塊查找 254
10.3 動(dòng)態(tài)查找表上的查找 256
10.3.1 二叉查找樹(shù) 256
10.3.2 平衡二叉樹(shù) 263
*10.3.3 B樹(shù) 275
*10.3.4 B+樹(shù) 280
*10.3.5 字典樹(shù) 281
10.4 算法設(shè)計(jì)舉例 282
習(xí)題 285
第11章 散列表 288
11.1 散列表的概念 288
11.2 構(gòu)造散列函數(shù)的方法 289
11.2.1 直接定址法 289
11.2.2 折疊法 289
11.2.3 數(shù)字分析法 289
11.2.4 平方取中法 290
11.2.5 除留余數(shù)法 290
11.3 解決沖突的方法 291
11.3.1 閉散列法 291
11.3.2 開(kāi)散列法 293
11.4 散列表的實(shí)現(xiàn) 294
11.4.1 閉散列表的表示和實(shí)現(xiàn) 294
11.4.2 開(kāi)散列表的表示和實(shí)現(xiàn) 298
11.4.3 閉散列表與開(kāi)散列表的
比較 302
11.5 散列表的查找性能分析 302
習(xí)題 303
第12章 排序 306
12.1 排序的基本概念 306
12.2 插入排序 307
12.2.1 直接插入排序 307
12.2.2 折半插入排序 308
12.2.3 希爾排序 309
12.3 交換排序 310
12.3.1 冒泡排序 310
12.3.2 快速排序 311
12.4 選擇排序 315
12.4.1 直接選擇排序 315
12.4.2 堆排序 316
*12.4.3 錦標(biāo)賽排序 320
12.5 歸并排序 320
*12.6 基數(shù)排序 322
12.7 各種內(nèi)部排序方法的比較 324
*12.8 外部排序 327
12.8.1 置換選擇排序 328
12.8.2 多路歸并排序 330
習(xí)題 331
附錄A 上機(jī)實(shí)驗(yàn)參考題目 334
參考文獻(xiàn) 336