數(shù)據(jù)結(jié)構(gòu)與算法
定 價(jià):42 元
- 作者:王曙燕 主編
- 出版時(shí)間:2013/9/1
- ISBN:9787115324207
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.12
- 頁碼:288
- 紙張:
- 版次:1
- 開本:16開
數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)是高等院校理工科各專業(yè)計(jì)算機(jī)應(yīng)用能力提高的重要技術(shù)基礎(chǔ)。本書將數(shù)據(jù)結(jié)構(gòu)和算法分析與設(shè)計(jì)的基礎(chǔ)知識(shí)相結(jié)合,以實(shí)際應(yīng)用為驅(qū)動(dòng),將數(shù)據(jù)結(jié)構(gòu)的各種知識(shí)融入到實(shí)際問題的解決中,對(duì)相關(guān)算法的核心思想進(jìn)行深入剖析,并總結(jié)比較各類算法的特點(diǎn)和適用范圍,重點(diǎn)培養(yǎng)學(xué)生使用數(shù)據(jù)結(jié)構(gòu)知識(shí)分析問題和解決問題的能力,為后繼課程的學(xué)習(xí)以及從事軟件開發(fā)工作打下良好的基礎(chǔ)。 本書系統(tǒng)地講解了數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)的相關(guān)知識(shí),全書共有9章,論述了數(shù)據(jù)結(jié)構(gòu)的基本概念、線性表、棧與隊(duì)列、串、數(shù)組和廣義表、樹、圖、查找以及排序等內(nèi)容。為了讓讀者能夠及時(shí)地檢查自己的學(xué)習(xí)效果,把握自己的學(xué)習(xí)進(jìn)度,每章后面都附有豐富的習(xí)題。 本書既可以作為高等院校各專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可供準(zhǔn)備考研的讀者閱讀參考,同時(shí)也可作為工程技術(shù)人員和計(jì)算機(jī)愛好者的參考資料。
1.以解決問題為驅(qū)動(dòng)。每章由案例作為問題的引入,在最后引入相關(guān)算法分析與設(shè)計(jì)的基礎(chǔ)知識(shí)。2.側(cè)重于算法核心思想的剖析。對(duì)算法的核心思想進(jìn)行剖析,并將各種算法進(jìn)行分類。3.強(qiáng)調(diào)易讀、易學(xué)和易教。全部算法和案例嚴(yán)格使用C語言編寫.4.配有設(shè)計(jì)精美、內(nèi)容豐富的電子教案和素材供授課教師使用。
目 錄
第1章 引論 1
1.1 數(shù)據(jù)結(jié)構(gòu)的概念 1
1.2 數(shù)據(jù)結(jié)構(gòu)的內(nèi)容 5
1.2.1 數(shù)據(jù)的邏輯結(jié)構(gòu) 5
1.2.2 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 6
1.3 算法 6
1.3.1 算法的概念 7
1.3.2 算法的評(píng)價(jià)標(biāo)準(zhǔn) 7
1.3.3 算法的描述 8
1.3.4 算法性能分析 10
習(xí)題 14
第2章 線性表 16 目 錄
第1章 引論 1
1.1 數(shù)據(jù)結(jié)構(gòu)的概念 1
1.2 數(shù)據(jù)結(jié)構(gòu)的內(nèi)容 5
1.2.1 數(shù)據(jù)的邏輯結(jié)構(gòu) 5
1.2.2 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 6
1.3 算法 6
1.3.1 算法的概念 7
1.3.2 算法的評(píng)價(jià)標(biāo)準(zhǔn) 7
1.3.3 算法的描述 8
1.3.4 算法性能分析 10
習(xí)題 14
第2章 線性表 16
2.1 應(yīng)用實(shí)例 16
2.2 線性表的概念及運(yùn)算 17
2.2.1 線性表的邏輯結(jié)構(gòu) 17
2.2.2 線性表的運(yùn)算 17
2.3 線性表的順序存儲(chǔ) 18
2.3.1 順序表 18
2.3.2 順序表的基本運(yùn)算 19
2.4 線性表的鏈?zhǔn)酱鎯?chǔ) 23
2.4.1 單鏈表 23
2.4.2 單鏈表基本運(yùn)算 24
2.4.3 循環(huán)鏈表 31
2.4.4 雙向鏈表 32
2.4.5 靜態(tài)鏈表 33
2.5 順序表和鏈表的比較 33
2.6 實(shí)例分析與實(shí)現(xiàn) 34
習(xí)題 42
第3章 棧和隊(duì)列 45
3.1 應(yīng)用實(shí)例 45
3.2 !46
3.2.1 棧的概念及運(yùn)算 46
3.2.2 棧的順序存儲(chǔ)結(jié)構(gòu) 47
3.2.3 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 50
3.2.4 棧的應(yīng)用 52
3.3 隊(duì)列 57
3.3.1 隊(duì)列的概念及其運(yùn)算 57
3.3.2 循環(huán)隊(duì)列 59
3.3.3 鏈隊(duì)列 61
3.4 實(shí)例分析與實(shí)現(xiàn) 63
3.5 算法總結(jié)——遞歸與分治算法 69
習(xí)題 71
第4章 串 73
4.1 應(yīng)用實(shí)例 73
4.2 串及其運(yùn)算 74
4.2.1 串的基本概念 74
4.2.2 串的基本運(yùn)算 75
4.2.3 串的基本運(yùn)算示例 77
4.3 串的存儲(chǔ)結(jié)構(gòu)及實(shí)現(xiàn) 77
4.3.1 定長順序串 77
4.3.2 堆串 80
4.3.3 塊鏈串 82
4.4 串的模式匹配 83
4.4.1 BF模式匹配算法 84
4.4.2 KMP模式匹配算法 85
4.5 實(shí)例分析與實(shí)現(xiàn) 91
4.5.1 串的實(shí)例分析 91
4.5.2 簡(jiǎn)單文本編輯軟件的實(shí)現(xiàn) 92
4.6 算法總結(jié) 94
習(xí)題 95
第5章 多維數(shù)組和廣義表 97
5.1 應(yīng)用實(shí)例 97
5.2 多維數(shù)組 97
5.3 矩陣的壓縮存儲(chǔ) 99
5.3.1 特殊矩陣 99
5.3.2 稀疏矩陣 100
5.4 廣義表 107
5.4.1 廣義表的概念 107
5.4.2 廣義表的存儲(chǔ) 108
5.4.3 廣義表的操作 109
5.5 實(shí)例分析與實(shí)現(xiàn) 111
習(xí)題 113
第6章 樹 115
6.1 應(yīng)用實(shí)例 115
6.2 樹的概念 117
6.2.1 樹的定義與表示 117
6.2.2 樹的基本術(shù)語 118
6.2.3 樹的抽象數(shù)據(jù)類型定義 119
6.3 二叉樹 120
6.3.1 二叉樹的定義 120
6.3.2 二叉樹的性質(zhì) 122
6.3.3 二叉樹的存儲(chǔ) 124
6.4 二叉樹的遍歷 126
6.4.1 二叉樹的遍歷及遞歸實(shí)現(xiàn) 126
6.4.2 二叉樹遍歷的非遞歸實(shí)現(xiàn) 128
6.4.3 遍歷算法的應(yīng)用 132
6.4.4 由遍歷序列確定二叉樹 136
6.5 線索二叉樹 137
6.5.1 線索二叉樹的基本概念 137
6.5.2 線索二叉樹的基本操作 138
6.6 樹和森林 140
6.6.1 樹的存儲(chǔ) 140
6.6.2 樹、森林與二叉樹的轉(zhuǎn)換 143
6.6.3 樹和森林的遍歷 146
6.7 哈夫曼樹及其應(yīng)用 148
6.7.1 哈夫曼樹 148
6.7.2 哈夫曼編譯碼 151
6.8 實(shí)例分析與實(shí)現(xiàn) 153
6.8.1 表達(dá)式樹 153
6.8.2 樹與等價(jià)類的劃分 155
6.8.3 回溯法與N皇后問題 158
6.9 算法總結(jié) 160
習(xí)題 161
第7章 圖 164
7.1 應(yīng)用實(shí)例 164
7.2 圖的基本概念 165
7.3 圖的存儲(chǔ)結(jié)構(gòu) 167
7.3.1 鄰接矩陣 167
7.3.2 鄰接表 169
7.3.3 十字鏈表 171
7.3.4 多重鏈表 172
7.4 圖的遍歷 173
7.4.1 深度優(yōu)先搜索遍歷 173
7.4.2 廣度優(yōu)先搜索遍歷 175
7.5 圖的應(yīng)用 176
7.5.1 最小生成樹 176
7.5.2 拓?fù)渑判颉?81
7.5.3 關(guān)鍵路徑 184
7.5.4 最短路徑 188
7.6 實(shí)例分析與實(shí)現(xiàn) 192
7.7 算法總結(jié)——貪心算法 199
習(xí)題 203
第8章 查找 207
8.1 概述 207
8.2 基于線性表的查找 208
8.2.1 順序查找 208
8.2.2 折半查找 210
8.2.3 索引查找 213
8.3 基于樹的查找 214
8.3.1 二叉排序樹 214
8.3.2 平衡二叉樹 220
8.3.3 B樹和B+樹 228
8.3.4 伸展樹 234
8.3.5 紅黑樹 236
8.4 散列 241
8.4.1 Hash函數(shù)的構(gòu)造方法 241
8.4.2 處理沖突的方法 243
8.4.3 Hash表查找 245
8.5 算法總結(jié) 248
習(xí)題 249
第9章 排序 252
9.1 概述 252
9.2 插入類排序 254
9.2.1 直接插入排序 255
9.2.2 折半插入排序 257
9.2.3 希爾排序 258
9.3 交換類排序 259
9.3.1 冒泡排序 259
9.3.2 快速排序 262
9.4 選擇類排序 264
9.4.1 簡(jiǎn)單選擇排序 264
9.4.2 樹形選擇排序 265
9.4.3 堆排序 267
9.5 歸并類排序 272
9.5.1 二路歸并排序 272
9.5.2 自然歸并排序 274
9.6 分配類排序 275
9.6.1 多關(guān)鍵字排序 275
9.6.2 鏈?zhǔn)交鶖?shù)排序 276
9.7 外部排序 278
9.7.1 置換選擇排序 279
9.7.2 多路歸并外排序 281
9.8 算法總結(jié) 285
習(xí)題 286
參考文獻(xiàn) 288