第1章 基本概念 1
1.1 重点内容讲解 1
1.1.1 数据结构概念 1
1.1.2 逻辑结构的4种基本形态 1
1.1.3 数据存储结构的基本组织方式 2
1.1.4 算法的定义和描述 2
1.1.5 算法分析和复杂度计算 3
1.2 典型例题解析 4
1.2.1 概念题 4
1.2.2 基本题 8
1.3 习题与答案 12
1.3.1 习题 12
1.3.2 习题答案 15
第2章 线性表 17
2.1 重点内容讲解 17
2.1.1 线性表的存储结构 17
2.1.2 线性表的插入和删除运算 19
2.2 典型例题分析 20
2.2.1 概念题 20
2.2.2 基本题 25
2.2.3 算法设计 28
2.3 习题与答案 34
2.3.1 习题 34
2.3.2 习题答案 36
第3章 栈与队列 43
3.1 重点内容讲解 43
3.1.1 栈 43
3.1.2 队列 44
3.1.3 栈、递归与非递归 45
3.2 典型例题分析 46
3.2.1 概念题 46
3.2.2 基本题 51
3.2.3 算法设计 54
3.2.4 递归转化为非递归示例 58
3.3 习题与答案 66
3.3.1 习题 66
3.3.2 习题答案 68
第4章 串 75
4.1 重点内容讲解 75
4.1.1 串的概念与存储结构 75
4.1.2 简单模式匹配 76
4.1.3 无回溯的KMP匹配 77
4.2 典型例题解析 78
4.2.1 概念题 78
4.2.2 基本题 81
4.2.3 算法设计 86
4.3 习题与答案 89
4.3.1 习题 89
4.3.2 习题答案 91
第5章 数组与广义表 95
5.1 重点内容讲解 95
5.1.1 数组的概念与存储 95
5.1.2 矩阵的压缩存储 96
5.1.3 广义表的概念与存储 99
5.2 典型例题分析 100
5.2.1 概念题 100
5.2.2 基本题 105
5.2.3 算法设计 109
5.3 习题与答案 114
5.3.1 习题 114
5.3.2 习题答案 117
第6章 树和二叉树 121
6.1 重点内容讲解 121
6.1.1 树的定义与概念 121
6.1.2 二叉树的概念、性质及存储 122
6.1.3 二叉树的遍历 124
6.1.4 线索二叉树 125
6.1.5 最优二叉树(哈夫曼树) 127
6.1.6 树和森林 129
6.2 典型例题解析 131
6.2.1 概念题 131
6.2.2 基本题 141
6.2.3 算法设计 155
6.3 习题与答案 164
6.3.1 习题 164
6.3.2 习题答案 170
第7章 图 179
7.1 重点内容讲解 179
7.1.1 图的基本概念 179
7.1.2 图的存储结构 180
7.1.3 图的遍历 182
7.1.4 最小生成树 183
7.1.5 拓扑排序和关键路径 184
7.1.6 最短路径 186
7.2 典型例题解析 188
7.2.1 概念题 188
7.2.2 基本题 196
7.2.3 算法设计 212
7.3 习题与答案 218
7.3.1 习题 218
7.3.2 习题答案 223
第8章 查找 229
8.1 重点内容讲解 229
8.1.1 静态查找表 229
8.1.2 动态查找表 231
8.2 典型例题解析 240
8.2.1 概念题 240
8.2.2 基本题 248
8.2.3 算法设计 260
8.3 习题与答案 264
8.3.1 习题 264
8.3.2 习题答案 268
第9章 排序 275
9.1 重点内容讲解 275
9.1.1 插入排序 275
9.1.2 交换排序 277
9.1.3 选择排序 278
9.1.4 归并排序 280
9.1.5 基数排序 280
9.1.6 各种内部排序方法的比较 281
9.1.7 外部排序 282
9.2 典型例题解析 284
9.2.1 概念题 284
9.2.2 基本题 293
9.2.3 算法设计 303
9.3 习题与答案 312
9.3.1 习题 312
9.3.2 习题答案 316
第10章 文件 323
10.1 重点内容讲解 323
10.1.1 文件的基本概念 323
10.1.2 顺序文件 323
10.1.3 索引文件 324
10.1.4 散列文件 325
10.1.5 多关键字文件 325
10.2 典型例题分析 326
10.2.1 概念题 326
10.2.2 基本题 330
10.2.3 算法设计 334
10.3 习题与答案 336
10.3.1 习题 336
10.3.2 习题答案 338
参考文献 341