第1章 预备知识 1
1.1程序设计概述 1
1.2指针与结构体 11
1.3文件操作 21
1.4函数与模块化程序设计 27
1.5本章小结 37
习题 37
第2章 数据结构导论 41
2.1概念与术语 41
2.2抽象数据类型 46
2.3算法概述 48
2.4算法分析 51
2.5本章小结 60
习题 60
第3章 线性表 63
3.1线性表的基本概念 63
3.2线性表的顺序表示 67
3.3线性表的链式表示 74
3.4线性结构的深入 83
3.5本章小结 92
习题 93
第4章 栈和队列 95
4.1栈的基本概念 95
4.2栈的表示与实现 97
4.3栈的应用 102
4.4队列的基本概念 111
4.5队列表示与实现 113
4.6队列的应用 119
4.7递归及其应用 122
4.8本章小结 128
习题 129
第5章 串和数组 132
5.1串的基本概念 132
5.2串表示与实现 134
5.3串的应用 138
5.4模式匹配 139
5.5数组 145
5.6矩阵压缩 150
5.7本章小结 157
习题 158
第6章 树和二叉树 160
6.1树的基本概念 160
6.2二叉树的概念 165
6.3二叉树的遍历及应用 173
6.4线索二叉树 183
6.5树和森林 188
6.6哈夫曼树和哈夫曼编码 202
6.7本章小结 210
习题 211
第7章 图 214
7.1图的基本概念 214
7.2图的表示与实现 220
7.3图的遍历 230
7.4最小生成树 236
7.5拓扑排序 242
7.6关键路径 245
7.7最短路径 248
7.8本章小结 253
习题 254
第8章 查找表 257
8.1查找表的基本概念 257
8.2静态查找表 258
8.3动态查找表 265
8.4本章小结 288
习题 288
第9章 排序 290
9.1排序的基本概念 290
9.2简单排序 292
9.3希尔排序 298
9.4快速排序 300
9.5堆排序 307
9.6归并排序 310
9.7基数排序 313
9.8本章小结 317
习题 320
第10章 文件 322
10.1文件的基本概念 322
10.2顺序文件 323
10.3索引文件 325
10.4ISAM文件 328
10.5散列文件 329
10.6本章小结 330
习题 330
第11章 算法设计策略 332
11.1概述 332
11.2分治策略 335
11.3贪心策略 343
11.4动态规划策略 349
11.5回溯策略 357
11.6分枝定界策略 372
11.7本章小结 379
习题 380
参考文献 381