第1章 预备知识 1
1.1指针类型与链表 1
1.1.1指针 1
1.1.2链表 2
1.2递归技术 3
1.2.1递归定义 3
1.2.2递归模型 4
1.2.3递归设计 5
1.2.4递归调用举例 5
1.3 Turbo Pascal的单元 6
1.3.1单元的基本概念 6
1.3.2单元文件的结构 7
1.4例题精析 9
1.5学习自评 13
1.5.1自测练习 13
1.5.2自测练习参考答案 15
第2章 绪论 17
2.1学习导引 17
2.1.1基本概念 17
2.1.2抽象数据类型 20
2.1.3算法及其表示 21
2.1.4算法分析 21
2.1.5算法分析中常用数学公式 22
2.2例题精析 23
2.3学习自评 28
2.3.1自测练习 28
2.3.2自测练习参考答案 30
第3章 线性表 31
3.1学习导引 31
3.1.1基本概念 31
3.1.2线性表的运算 35
3.2例题精析 36
3.3学习自评 60
3.3.1自测练习 60
3.3.2自测练习参考答案 66
第4章 栈和队列 72
4.1学习导引 72
4.1.1基本概念 72
4.1.2栈的运算 73
4.1.3队列的运算 73
4.1.4存储结构 73
4.1.5表达式求值的算符优先算法 79
4.2例题精析 80
4.3学习自评 93
4.3.1自测练习 93
4.3.2自测练习参考答案 99
5.1.1基本概念 102
5.1学习导引 102
第5章 串 102
5.1.2基本运算 103
5.1.3存储结构 103
5.1.4基本算法 105
5.2例题精析 110
5.3学习自评 120
5.3.1自测练习 120
5.3.2自测练习参考答案 121
第6章 数组和广义表 122
6.1学习导引 122
6.1.1数组的概念及存储结构 122
6.1.2特殊矩阵 123
6.1.3稀疏矩阵及其存储结构 124
6.1.4广义表的基本概念及存储结构 125
6.2例题精析 128
6.3.1自测练习 144
6.3学习自评 144
6.3.2自测练习参考答案 149
第7章 树和二叉树 151
7.1学习导引 151
7.1.1树的基本概念、基本运算及存储结构 151
7.1.2二叉树的基本概念、基本性质及存储结构 153
7.1.3二叉树的遍历 155
7.1.4线索二叉树 156
7.1.5树与森林的二叉树表示及遍历 156
7.1.6哈夫曼树及哈夫曼编码 159
7.2例题精析 161
7.3学习自评 182
7.3.1自测练习 182
7.3.2自测练习参考答案 195
8.1.1基本概念 204
8.1学习导引 204
第8章 图 204
8.1.2图的基本运算 206
8.1.3图的存储结构 207
8.1.4图的基本算法 209
8.1.5拓扑排序与关键路径 213
8.2例题精析 216
8.3学习自评 230
8.3.1自测练习 230
8.3.2自测练习参考答案 240
第9章 查找 248
9.1学习导引 248
9.1.1基本概念 248
9.1.2顺序表的查找 249
9.1.3树表的查找 250
9.1.4哈希表 254
9.2例题精析 259
9.3学习自评 271
9.3.1自测练习 271
9.3.2自测练习参考答案 280
第10章 内部排序 287
10.1学习导引 287
10.1.1概念 287
10.1.2常用排序方法 288
10.2例题精析 293
10.3学习自评 304
10.3.1自测练习 304
10.3.2自测练习参考答案 312
第11章 文件 316
11.1学习导引 316
11.1.1外存信息的存取 316
11.1.2文件的基本概念 318
11.1.3常见文件结构 320
11.2例题精析 324
11.3学习自评 328
11.3.1自测练习 328
11.3.2自测练习参考答案 330
第12章 总复习 332
12.1课程总结 332
12.1.1数据的逻辑结构 332
12.1.2数据的存储结构 333
12.1.3数据的运算 335
12.2模拟试卷1 335
12.3模拟试卷2 338
12.3.1模拟试卷1参考答案 340
12.3.2模拟试卷2参考答案 344
附录 描述算法的类Pascal语言 349
参考文献 352