第一章 预备知识 1
1.1程序设计概述 1
1.2指针与结构体 11
1.3文件操作 21
1.4函数与模块化程序设计 27
1.5本章小结 37
第二章 数据结构导论 38
2.1概念与术语 38
2.2抽象数据类型 43
2.3算法概述 45
2.4算法分析 48
2.5本章小结 57
第三章 线性结构 58
3.1线性表的定义 58
3.2线性表的基本操作 59
3.3线性结构的顺序表示方法 62
3.4线性结构的链式表示方法 70
3.5线性结构的深入 79
3.6本章小结 87
第四章 栈和队列 89
4.1栈的定义与基本操作 89
4.2栈的表示与实现 90
4.3栈的应用示例 96
4.4队列定义与表示 104
4.5队列基本操作 105
4.6队列应用示例 112
4.7递归应用示例 113
4.8本章小结 119
第五章 串和数组 121
5.1字符串定义与操作 121
5.2字符串表示与实现 123
5.3字符串的应用 127
5.4字符串匹配算法 128
5.5数组 135
5.6矩阵的压缩存储 140
5.7本章小结 146
第六章 树和二叉树 148
6.1树的基本概念 148
6.2二叉树的概念 153
6.3二叉树的遍历和其他运算 161
6.4线索二叉树 170
6.5树和森林 174
6.6哈夫曼树和哈夫曼编码 185
6.7本章小结 193
第七章 图 195
7.1图的基本概念 195
7.2图的存储表示 201
7.3图的遍历 211
7.4最小生成树 216
7.5拓扑排序 222
7.6关键路径 224
7.7最短路径 227
7.8本章小结 232
第八章 查找算法 233
8.1概述 233
8.2静态查找 234
8.3动态查找 241
8.4哈希(Hash)查找 247
8.5查找算法深入 258
8.6本章小结 262
第九章 排序算法 263
9.1概述 263
9.2简单排序 264
9.3快速排序 270
9.4 Shell排序 276
9.5堆排序 278
9.6归并排序 280
9.7分配排序和基数排序 282
9.8本章小结 284
第十章 文件结构 287
10.1概述 287
10.2顺序文件 288
10.3索引文件 290
10.4 ISAM文件 293
10.5散列文件 294
10.6文件结构深入 295
10.7本章小结 295
第十一章 算法设计策略 296
11.1概述 296
11.2分治策略 299
11.3贪心策略 307
11.4动态规划策略 313
11.5回溯策略 321
11.6分枝定界策略 335
11.7本章小结 342
参考文献 344