第1章 数据结构与算法的引入 1
1.1 数据结构的概念 2
1.2 算法 4
1.3 建立数学模型 11
1.4 程序的调试 14
习题及参考答案 18
第2章 队列 23
2.1 线性表的定义及结构 23
2.2 队列 29
习题及参考答案 33
第3章 栈 34
3.1 栈的定义与基本操作 34
3.2 栈的存储方式 35
3.3 栈的应用 36
习题及参考答案 40
第4章 树 43
4.1 树的概念 43
4.2 二叉树 45
4.3 树的存储结构 48
4.4 树的遍历 53
4.5 最优二叉树 58
习题及参考答案 61
第5章 图 65
5.1 图的概念 65
5.2 图的遍历 67
5.3 图的最短路 69
5.4 最小生成树 82
5.5 图的应用 86
习题及参考答案 93
第6章 数据结构的综合应用 99
6.1 并查集(Union-Find Sets) 99
6.2 哈希表(Hash Table) 101
6.3 数据结构的综合应用 104
习题及参考答案 113
第7章 排列和组合 120
7.1 加法原理和乘法原理 120
7.2 排列 121
7.3 组合 128
习题及参考答案 131
第8章 高精度计算 134
8.1 高精度基本计算 134
8.2 高精度计算的优化 138
习题及参考答案 144
第9章 排序法 148
9.1 插入排序 149
9.2 希尔排序 150
9.3 选择排序 152
9.4 冒泡排序 154
9.5 快速排序 156
9.6 堆排序 159
9.7 基数排序(多关键字排序) 163
9.8 各种内部排序方法的比较 166
习题及参考答案 167
第10章 搜索策略 169
10.1 搜索的基本知识 169
10.2 穷举搜索 171
10.3 回溯搜索 175
10.4 广度优先搜索 182
10.5 分支定界 182
习题及参考答案 187
第11章 分治策略 190
11.1 分治原理 190
11.2 二分法 195
11.3 递推法的分治处理 201
习题及参考答案 203
第12章 贪心法 210
12.1 贪心算法思想 210
12.2 贪心法的典型例题 210
12.3 贪心法的证明 222
12.4 贪心法在搜索中的应用 224
习题及参考答案 225
第13章 动态规划 228
13.1 动态规划的基本思想 228
13.2 动态规划的进一步讨论 236
13.3 记忆化搜索的应用 248
习题及参考答案 254
第14章 算法的综合应用 259
附录 281
附录1 编译器开关表 281
附录2 Free Pascal和Turbo Pascal的主要区别 284