第一章緒論.1
1.1數據結構概念1
1.2面向對象程序設計OOP與抽象數據類型ADT3
1.3算法概念和算法描述語言5
第二章算法分析基礎9
2.1引論9
2.2算法時間復雜性的分析方法11
2.3時間與空間分析15
習題16
第三章面向對象程序設計與C++語言18
3.1類和對象18
3.1.1類聲明18
3.1.2類實現19
3.1.3對象聲明20
3.2C++語言的基本操作21
3.2.1輸入輸出的C++實現21
3.2.2友元函數(friendfuntction)23
3.2.3參數傳遞24
3.2.4多態(tài)性25
3.2.5動態(tài)存儲分配28
3.3模板29
3.3.1模板函數29
3.3.2模板類31
3.4繼承32
習題34
第四章線性表.堆棧.隊列35
4.1線性表的定義和基本操作35
4.2線性表的存儲結構36
4.2.1順序存儲結構36
4.2.2鏈接存儲結構----單鏈表36
4.2.3循環(huán)鏈表47
4.2.4雙向循環(huán)鏈表49
4.3堆棧和隊列53
4.3.1定義和主要操作53
4.3.2順序存儲56
4.3.3鏈接存儲63
4.3.4應用--算術表達式求值65
習題68
第五章數組字符串和集合類71
5.1數組71
5.1.1順序存儲的數組71
5.1.2靜態(tài)數組與動態(tài)數組73
5.1.3稀疏矩陣77
5.2字符串84
5.2.1定義和主要操作84
5.2.2存儲方式85
5.2.3模式匹配算法*86
5.3整型集合90
習題94
第六章樹98
6.1基本概念98
6.2二叉樹99
6.2.1主要性質和定義99
6.2.2二叉樹的實現102
6.2.3二叉樹的遍歷108
6.2.4復制二叉樹110
6.3線索二叉樹111
6.4樹與森林119
6.4.1樹的順序存儲結構119
6.4.2樹的鏈接存儲結構121
6.4.3森林與二叉樹的轉換125
6.4.4樹和森林的遍歷126
6.5壓縮與哈夫曼樹131
習題135
第七章圖137
7.1概念和定義137
7.2圖的存儲結構與類Graph139
7.2.1存儲結構139
7.2.2Graph類141
7.3遍歷函數的實現153
7.3.1深度優(yōu)先遍歷153
7.3.2廣度優(yōu)先遍歷155
7.4拓撲排序156
7.5關鍵路徑159
7.6最短路徑問題163
7.6.1無權最短路徑問題163
7.6.2正權最短路徑問題165
7.6.3負權最短路徑問題*168
7.6.4每對頂點之間的最短路徑171
7.7最小支撐樹173
7.8應用178
7.8.1可及性與Warshall算法178
7.8.2連通分量180
習題182
第八章遞歸..186
8.1什么是遞歸186
8.2基本遞歸過程188
8.3遞歸過程的實現:堆棧與遞歸191
8.4遞歸到非遞歸的轉換196
8.5遞歸的應用203
8.5.1應用實例1:算術表達式求值203
8.5.2應用實例2:回溯205
習題210
第九章排序211
9.1插入排序212
9.2交換排序217
9.2.1冒泡排序217
9.2.2分劃交換排序222
9.3選擇排序231
9.3.1直接選擇排序231
9.3.2堆排序232
9.4合并排序238
9.5排序下界242
9.6分布排序*243
9.6.1基數分布244
9.6.2值分布247
9.7外排序*249
9.7.1外存儲器249
9.7.2磁帶排序250
9.7.3磁盤排序260
習題266
第十章查找與二叉查找樹269
10.1線性表查找269
10.1.1順序查找270
10.1.2有序表的查找271
10.2二叉查找樹278
10.2.1定義和基本操作278
10.2.2靜態(tài)樹281
10.2.3動態(tài)樹289
10.3數字查找樹320
10.4雜湊322
10.4.1雜湊表的定義和主要操作322
10.4.2雜湊函數323
10.4.3沖突調節(jié)326
10.5(a,b)-樹.B樹和B+樹*334
習題341
第十一章內存管理344
11.1均勻大小記錄的管理和廢料收集方法344
11.1.1訪問計數器法345
11.1.2廢料收集346
11.2不同大小記錄的查找分配和壓縮分配350
11.2.1查找分配351
11.2.2壓縮分配357
11.3伙伴系統(tǒng)362
11.4C++中的動態(tài)內存分配*368
習題369
第十二章復雜數據結構371
12.1優(yōu)先級隊列371
12.1.1類聲明371
12.1.2優(yōu)先級隊列的應用:長歸并段372
12.2不相交集合類378
12.2.1等價關系378
12.2.2動態(tài)等價379
12.2.3快速查找算法383
12.2.4快速合并算法384
12.2.5C++實現390
12.2.6最壞情況下的歸并和路徑壓縮391
第十三章文件393
13.1文件結構概論393
13.2順序文件396
13.2.1串行處理文件396
13.2.2順序處理文件399
13.2.3增補文件400
13.3雜湊(散列)文件402
13.3.1雜湊文件的設計402
13.3.2可擴充的雜湊文件405
13.4索引文件410
13.4.1動態(tài)索引結構和靜態(tài)索引結構414
13.4.2索引順序文件B+414
13.4.3B+索引文件418
13.5倒排文件和多重鏈表文件422
習題430
第十四章應用*432
14.1事件驅動模擬432
14.1.1模擬設計432
14.1.2模擬建立436
14.1.3運行模擬437
14.2在線等價類443
14.2.1樹形描述443
14.2.2操作444
14.2.3性能評價445
14.2.4性能改進445
14.3殘缺棋盤451
14.4圖像壓縮454
參考文獻...461