數(shù)據(jù)結(jié)構(gòu)與算法——C語言版
定 價:45 元
- 作者:傳智播客
- 出版時間:2016/8/26
- ISBN:9787302440680
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.12
- 頁碼:366
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書以C語言為基礎(chǔ)講解數(shù)據(jù)結(jié)構(gòu)與算法。全書共11章,全面介紹了開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),包括線性表(順序表、單鏈表、雙鏈表、循環(huán)鏈表)、棧和隊列、串、數(shù)組和廣義表、樹、圖,詳細講解了各種數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)及常用操作,以及多種查找算法、內(nèi)部排序算法的原理和實現(xiàn),簡要介紹了文件的相關(guān)知識,最后通過一個綜合項目對書中介紹的知識進行整合應(yīng)用,幫助讀者了解實際項目開發(fā)的流程。
本書對每種數(shù)據(jù)結(jié)構(gòu)和算法的剖析都遵循由淺入深的原則,并配以實用的案例和圖示,適合具有C語言基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)初學(xué)者,實用性強。本書可作為高等院校計算機相關(guān)專業(yè)數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)參考用書,也可作為培訓(xùn)教材和自學(xué)者的學(xué)習(xí)用書。
由傳智播客編著的數(shù)據(jù)結(jié)構(gòu)與算法的C語言版教材,讓初學(xué)者能熟悉并靈活運用數(shù)據(jù)結(jié)構(gòu)與算法。
涵蓋了常用的數(shù)據(jù)結(jié)構(gòu)和算法,提供了9個常用的數(shù)據(jù)結(jié)構(gòu)的完整實現(xiàn)、31個常用算法的實現(xiàn)、17道經(jīng)典思考題。
針對每一個所講解的知識點都進行了深入分析,并使用生動形象的情境化舉例,將原本復(fù)雜的、難于理解的知識點和問題進行簡化,真正遵循了由淺入深、由易到難的學(xué)習(xí)規(guī)律。
精心設(shè)計了大量的實用案例,讓學(xué)習(xí)者不但能掌握和理解知識點,并且還可以清楚地知道在實際工作中如何去運用。
免費提供豐富的配套資源,包括精美教學(xué)PPT、50個輔助案例、1000道測試題、長達30小時的教學(xué)視頻。
第1章數(shù)據(jù)結(jié)構(gòu)與算法概述1
1.1數(shù)據(jù)結(jié)構(gòu)1
1.1.1什么是數(shù)據(jù)結(jié)構(gòu)1
1.1.2數(shù)據(jù)結(jié)構(gòu)的分類2
1.2抽象數(shù)據(jù)類型6
1.3算法7
1.3.1什么是算法7
1.3.2算法的特性9
1.3.3算法的復(fù)雜度10
1.3.4算法與數(shù)據(jù)結(jié)構(gòu)12
1.4小結(jié)12
【思考題】12
第2章線性表13
2.1什么是線性表13
2.2線性表的順序存儲(順序表)14
2.2.1順序存儲的原理14
2.2.2順序存儲的實現(xiàn)15
2.3線性表的鏈?zhǔn)酱鎯Γㄦ湵恚?3
2.3.1鏈?zhǔn)酱鎯Φ脑?3
2.3.2鏈?zhǔn)酱鎯Φ膶崿F(xiàn)24
2.4雙鏈表31
2.4.1什么是雙鏈表32
2.4.2雙鏈表的實現(xiàn)32
2.5循環(huán)鏈表39
2.5.1什么是循環(huán)鏈表39
2.5.2循環(huán)鏈表的實現(xiàn)40
2.5.3約瑟夫環(huán)43
2.6本章小結(jié)48
【思考題】49目錄數(shù)據(jù)結(jié)構(gòu)與算法——C語言版第3章棧和隊列50
3.1什么是棧50
3.2棧的實現(xiàn)51
3.2.1棧的順序存儲實現(xiàn)51
3.2.2棧的鏈?zhǔn)酱鎯崿F(xiàn)56
3.3棧的應(yīng)用60
3.3.1用棧實現(xiàn)四則運算60
3.3.2棧的遞歸應(yīng)用72
3.4什么是隊列75
3.5隊列的實現(xiàn)75
3.5.1順序隊列的實現(xiàn)76
3.5.2鏈?zhǔn)疥犃械膶崿F(xiàn)80
3.5.3循環(huán)隊列84
3.6本章小結(jié)86
【思考題】87
第4章串88
4.1什么是串88
4.2串的存儲結(jié)構(gòu)89
4.2.1串的順序存儲89
4.2.2串的鏈?zhǔn)酱鎯?7
4.3串的模式匹配算法98
4.3.1樸素的模式匹配98
4.3.2KMP算法(無回溯的模式匹配)101
4.4本章小結(jié)105
【思考題】105
第5章數(shù)組和廣義表106
5.1數(shù)組106
5.2矩陣的壓縮存儲109
5.2.1特殊矩陣109
5.2.2稀疏矩陣的定義110
5.2.3稀疏矩陣的創(chuàng)建112
5.2.4稀疏矩陣的轉(zhuǎn)置114
5.2.5稀疏矩陣的十字鏈表表示118
5.3廣義表123
5.3.1廣義表的定義123
5.3.2廣義表的存儲結(jié)構(gòu)124
5.3.3廣義表的遞歸運算125
5.4本章小結(jié)132
【思考題】132
第6章樹133
6.1樹133
6.1.1什么是樹133
6.1.2樹的表示法135
6.2二叉樹138
6.2.1什么是二叉樹138
6.2.2二叉樹的分類138
6.2.3二叉樹的性質(zhì)139
6.3二叉樹的存儲結(jié)構(gòu)141
6.3.1二叉樹的順序存儲141
6.3.2二叉樹的鏈?zhǔn)酱鎯?43
6.4二叉樹的遍歷147
6.4.1二叉樹的遍歷147
6.4.2遞歸思想的應(yīng)用151
6.5二叉樹的非遞歸遍歷154
6.6二叉樹與樹、森林之間的轉(zhuǎn)換162
6.6.1二叉樹與樹之間的轉(zhuǎn)換162
6.6.2二叉樹與森林之間的轉(zhuǎn)換162
6.7二叉樹的創(chuàng)建164
6.7.1中序和先序創(chuàng)建二叉樹164
6.7.2#號法創(chuàng)建樹166
6.8線索二叉樹169
6.8.1什么是線索二叉樹169
6.8.2二叉樹的線索化171
6.8.3線索化二叉樹的遍歷175
6.9赫夫曼樹177
6.9.1什么是赫夫曼樹177
6.9.2赫夫曼樹的構(gòu)造178
6.9.3赫夫曼編碼179
6.10本章小結(jié)180
【思考題】181
第7章圖182
7.1圖的基本概念182
7.1.1圖的定義與基本術(shù)語182
7.1.2圖的基本操作185
7.2圖的存儲結(jié)構(gòu)186
7.2.1圖的鄰接矩陣存儲187
7.2.2圖的鄰接表存儲189
7.2.3圖的十字鏈表存儲192
7.2.4圖的鄰接多重表存儲194
7.3圖的遍歷196
7.3.1深度優(yōu)先遍歷196
7.3.2廣度優(yōu)先遍歷198
7.4最小生成樹201
7.4.1什么是最小生成樹201
7.4.2Prim算法203
7.4.3Kruskal算法207
7.5最短路徑210
7.5.1從源點到其他頂點的最短路徑211
7.5.2每對頂點的最短路徑216
7.6拓撲排序219
7.7關(guān)鍵路徑224
7.8本章小結(jié)229
【思考題】230
第8章查找231
8.1查找概述231
8.2順序表的查找232
8.3有序表的查找233
8.3.1折半查找233
8.3.2插值查找235
8.3.3斐波納契查找235
8.4索引順序查找239
8.5二叉排序樹241
8.6平衡二叉樹246
8.6.1平衡二叉樹的概念246
8.6.2平衡二叉樹的插入247
8.6.3平衡二叉樹的刪除252
8.7B樹254
8.7.1B樹的概念254
8.7.2B樹的插入256
8.7.3B樹的刪除258
8.8鍵樹261
8.9哈希表265
8.9.1什么是哈希表265
8.9.2哈希函數(shù)的構(gòu)造方法267
8.9.3處理哈希沖突269
8.9.4哈希表的查找實現(xiàn)273
8.10本章小結(jié)275
【思考題】275
第9章內(nèi)部排序276
9.1排序的概念與分類276
9.2交換排序278
9.2.1冒泡排序279
9.2.2快速排序283
9.3插入排序286
9.3.1直接插入排序286
9.3.2折半插入排序289
9.3.3希爾排序290
9.4選擇排序294
9.4.1簡單選擇排序294
9.4.2樹形選擇排序296
9.4.3堆排序298
9.5歸并排序303
9.6基數(shù)排序307
9.6.1基數(shù)排序基礎(chǔ)307
9.6.2鏈?zhǔn)交鶖?shù)排序310
9.7內(nèi)部排序方法比較314
9.8磁盤排序315
9.8.1外部存儲設(shè)備315
9.8.2磁盤排序分析317
9.8.3置換選擇排序319
9.8.4多路平衡歸并321
9.8.5最佳歸并樹324
9.9本章小結(jié)325
【思考題】326
第10章文件327
10.1文件概述327
10.2順序文件和索引文件328
10.2.1順序文件328
10.2.2索引文件329
10.3ISAM文件和VSAM文件331
10.3.1ISAM文件331
10.3.2VSAM文件334
10.4哈希文件336
10.5多關(guān)鍵字文件337
10.5.1多重表文件337
10.5.2倒排文件338
10.6本章小結(jié)339
【思考題】339
第11章綜合項目——貪吃蛇340
11.1項目分析340
11.1.1模塊設(shè)計340
11.1.2模塊描述342
11.1.3項目分析345
11.2項目實現(xiàn)346
11.2.1創(chuàng)建項目346
11.2.2項目設(shè)計346
11.2.3項目實現(xiàn)349
11.2.4主函數(shù)實現(xiàn)360
11.2.5效果展示364
11.3項目心得365
【思考題】366