第1章 概论 1
1.1 内容和要点 1
1.1.1 课程目的和内容 1
1.1.2 学习要求 1
1.1.3 基本概念 2
1.1.4 数据抽象和抽象数据类型 2
1.1.5 数据结构和算法描述 3
1.1.6 算法和算法分析 3
1.2 典型题解 4
1.2.1 基本题 4
1.2.2 算法分析题 5
1.2.3 算法设计题 6
1.3 考研试题解析 8
1.3.1 基本题 8
1.3.2 算法分析题 9
1.4 配书习题选解 10
第2章 数组和链表 13
2.1 内容和要点 13
2.1.1 学习要求 13
2.1.2 数组 13
2.1.3 指针和动态存储分配 14
2.1.4 单链表 15
2.1.5 其他链表 16
2.2 典型题解 16
2.2.1 基本题 16
2.2.2 算法设计题 18
2.3 考研试题解析 20
2.3.1 基本题 20
2.3.2 算法设计题 21
2.4 配书习题选解 22
第3章 堆栈和队列 26
3.1 内容和要点 26
3.1.1 学习要求 26
3.1.2 堆栈ADT 26
3.1.3 堆栈的实现 27
3.1.4 队列ADT 28
3.1.5 队列的实现 28
3.1.6 表达式计算 28
3.1.7 递归 29
3.2 典型题解 29
3.2.1 基本题 29
3.2.2 算法设计题 31
3.3 考研试题解析 33
3.3.1 基本题 33
3.3.2 算法设计题 35
3.4 配书习题选解 36
第4章 线性表和数组ADT 43
4.1 内容和要点 43
4.1.1 学习要求 43
4.1.2 线性表ADT 44
4.1.3 线性表的顺序表示 44
4.1.4 线性表的链接表示 44
4.1.5 两种存储表示的比较 45
4.1.6 多项式的算术运算 45
4.1.7 数组作为抽象数据类型 46
4.1.8 对称矩阵 46
4.1.9 稀疏矩阵 46
4.2 典型题解 47
4.2.1 基本题 47
4.2.2 算法设计题 49
4.3 考研试题解析 50
4.3.1 基本题 50
4.3.2 算法设计题 52
4.4 配书习题选解 53
第5章 字符串和广义表 59
5.1 内容和要点 59
5.1.1 学习要求 59
5.1.2 字符串 59
5.1.3 模式匹配 60
5.1.4 广义表 60
5.2 典型题解 61
5.2.1 基本题 61
5.2.2 算法设计题 63
5.3 考研试题解析 64
5.3.1 基本题 64
5.3.2 算法设计题 66
5.4 配书习题选解 66
第6章 树 70
6.1 内容和要点 70
6.1.1 学习要求 70
6.1.2 树的定义和基本术语 71
6.1.3 二叉树的定义和性质 71
6.1.4 二叉树ADT和二叉链表 72
6.1.5 二叉树遍历的递归算法 72
6.1.6 二叉线索树 73
6.1.7 树和森林 74
6.1.8 堆和优先权队列 74
6.1.9 哈夫曼树和哈夫曼编码 74
6.1.10 并查集和等价关系 75
6.2 典型题解 75
6.2.1 基本题 75
6.2.2 算法设计题 77
6.3 考研试题解析 78
6.3.1 基本题 78
6.3.2 算法设计题 80
6.4 配书习题选解 81
第7章 集合与搜索 88
7.1 内容和要点 88
7.1.1 学习要求 88
7.1.2 基本概念 89
7.1.3 动态集ADT 89
7.1.4 集合的表示 89
7.1.5 顺序搜索 89
7.1.6 二分搜索和对半搜索 90
7.1.7 二叉判定树 90
7.2 典型题解 90
7.2.1 基本题 90
7.2.2 算法设计题 92
7.3 考研试题解析 94
7.3.1 基本题 94
7.3.2 算法设计题 95
7.4 配书习题选解 96
第8章 搜索树 99
8.1 内容和要点 99
8.1.1 学习要求 99
8.1.2 二叉搜索树 99
8.1.3 二叉搜索树的搜索 100
8.1.4 二叉平衡树 100
8.1.5 B树 101
8.2 典型题解 102
8.2.1 基本题 102
8.2.2 算法设计题 106
8.3 考研试题解析 107
8.3.1 基本题 107
8.3.2 算法设计题 110
8.4 配书习题选解 111
第9章 散列表 115
9.1 内容和要点 115
9.1.1 学习要求 115
9.1.2 字典 115
9.1.3 散列表 115
9.1.4 拉链法 116
9.1.5 开地址法 116
9.2 典型题解 117
9.2.1 基本题 117
9.2.2 算法设计题 119
9.3 考研试题解析 120
9.3.1 基本题 120
9.3.2 算法设计题 123
9.4 配书习题选解 124
第10章 图 126
10.1 内容和要点 126
10.1.1 学习要求 126
10.1.2 图的基本概念 126
10.1.3 图ADT 127
10.1.4 图的存储结构 128
10.1.5 图的遍历 129
10.1.6 拓扑排序和关键路径 129
10.1.7 最小代价生成树 130
10.1.8 最短路径 130
10.2 典型题解 131
10.2.1 基本题 131
10.2.2 算法设计题 134
10.3 考研试题解析 135
10.3.1 基本题 135
10.3.2 算法设计题 138
10.4 配书习题选解 140
第11章 内排序 149
11.1 内容和要点 149
11.1.1 学习要求 149
11.1.2 基本概念 149
11.1.3 排序使用的顺序表和链表结构 150
11.1.4 排序算法 150
11.1.5 算法分析 151
11.2 典型题解 152
11.2.1 基本题 152
11.2.2 算法设计题 154
11.3 考研试题解析 155
11.3.1 基本题 155
11.3.2 算法设计题 157
11.4 配书习题选解 159
第12章 文件和外排序 165
12.1 内容和要点 165
12.1.1 学习要求 165
12.1.2 文件 165
12.1.3 外排序 166
12.2 典型题解 167
12.3 考研试题解析 170
12.4 配书习题选解 172
第13章 模拟试卷及解析 174
13.1 本科“数据结构”期末模拟试卷 174
13.2 本科“数据结构”期末模拟试卷解析 178
13.3 攻读硕士学位研究生入学考试“数据结构”模拟试卷 182
13.4 攻读硕士学位研究生入学考试“数据结构”模拟试卷解析 186
附录 某高校研究生入学“数据结构”试卷 192
附录A 2005年攻读硕士学位研究生入学考试试卷 192
附录B 2006年攻读硕士学位研究生入学考试试卷 195
附录C 2007年攻读硕士学位研究生入学考试试卷 199
附录D 2008年攻读硕士学位研究生入学考试试卷 202
参考文献 206