第1章 绪论 1
1.1 数据结构的概念及分类 2
1.1.1 数据与数据结构 2
思政要点 2
1.1.2 数据结构的分类 3
思政要点 4
1.2 抽象数据类型 5
1.2.1 数据类型 5
1.2.2 数据抽象与抽象数据类型 5
1.2.3 用于描述数据结构的语言 7
思政要点 7
1.3 算法定义 7
思政要点 9
1.4 算法性能分析与度量 9
1.4.1 算法的性能标准 9
思政要点 10
1.4.2 算法的后期测试 10
1.4.3 算法的事前估计 11
思政要点 15
1.4.4 渐进的时间复杂度 15
思政要点 18
1.4.5 渐进的空间复杂度 18
思政要点 19
1.5 上机实验 19
思政要点 21
本章小结 21
习题1 22
第2章 线性表 24
2.1 线性表实例及概念 25
思政要点 26
2.2 线性表的存储方式 26
2.2.1 线性表的顺序存储结构 26
2.2.2 线性表的链式存储结构 27
思政要点 30
2.3 线性表的有关操作 30
2.3.1 顺序表的操作实现 30
思政要点 35
2.3.2 单链表的操作实现 35
思政要点 40
2.3.3 双向循环链表的操作实现 41
思政要点 43
2.4 线性表的ADT定义 44
思政要点 45
2.5 线性表的应用—多项式相加问题 45
2.5.1 存储结构的选取 45
2.5.2 一元多项加法运算的实现 45
思政要点 47
2.6 上机实验 47
思政要点 50
本章小结 50
习题2 53
第3章 栈 56
3.1 栈的应用实例及概念 57
思政要点 58
3.2 栈的存储方式 58
3.2.1 栈的顺序存储结构 58
思政要点 59
3.2.2 栈的链式存储结构 59
思政要点 60
3.3 栈的有关操作 60
3.3.1 顺序栈的操作实现 60
3.3.2 链栈的操作实现 62
思政要点 64
3.4 栈的ADT定义 64
思政要点 65
3.5 栈的应用实例——算术表达式的求值 65
3.5.1 表达式的构成 65
3.5.2 运算符的优先关系 65
3.5.3 算法思路 66
思政要点 67
3.6 上机实验 67
思政要点 70
本章小结 70
习题3 71
第4章 队列 74
4.1 队列的应用实例及概念 75
思政要点 76
4.2 队列的存储方式 76
4.2.1 队列的链式存储结构 76
思政要点 78
4.2.2 队列的顺序存储结构 78
思政要点 80
4.3 队列的有关操作 81
4.3.1 循环队列的操作实现 81
思政要点 83
4.3.2 链队列的操作实现 83
4.4 队列的ADT定义 87
思政要点 87
4.5 顺序循环队列的应用 88
思政要点 89
4.6 上机实验 89
思政要点 93
本章小结 93
习题4 94
第5章 串 97
5.1 串的应用实例及基本概念 98
思政要点 98
5.2 串的存储结构 99
5.2.1 串的顺序存储 99
思政要点 100
5.2.2 串的链式存储 100
思政要点 101
5.3 串运算的实现 101
思政要点 109
5.4 串的ADT定义 109
思政要点 110
5.5 上机实验 110
思政要点 113
本章小结 113
习题5 115
第6章 数组 116
6.1 二维数组应用实例及概念 117
思政要点 118
6.2 数组的顺序存储和实现 118
6.2.1 数组的顺序存储 118
6.2.2 数组的实现 119
思政要点 121
6.3 特殊矩阵的压缩存储 122
6.3.1 三角矩阵 122
6.3.2 稀疏矩阵 124
思政要点 129
6.4 数组应用实例 129
思政要点 131
6.5 上机实验 132
思政要点 134
本章小结 134
习题6 135
第7章 树 137
7.1 树的实例和基本概念 138
7.1.1 树的实例 138
7.1.2 树的基本概念 138
7.1.3 树的常用术语 139
7.1.4 树的表示方法 140
思政要点 140
7.2 二叉树 141
7.2.1 二叉树的定义 141
7.2.2 二叉树的重要性质 141
思政要点 143
7.2.3 二叉树的存储结构 143
7.2.4 二叉树二叉链表的一个生成算法 144
思政要点 145
7.3 二叉树的遍历 145
7.3.1 二叉树遍历的定义 145
7.3.2 遍历的递归方法 146
7.3.3 二叉树遍历的非递归实现 147
思政要点 151
7.4 二叉树其他运算的实现 151
思政要点 153
7.5 线索二叉树 154
7.5.1 线索二叉树的基本概念 154
7.5.2 线索二叉树的逻辑表示图 155
7.5.3 中序次序线索化算法 155
7.5.4 在中序线索树上检索某结点的前驱或后继 157
7.5.5 在中序线索树上遍历二叉树 158
思政要点 158
7.6 树与森林 158
7.6.1 树的存储结构 158
7.6.2 树、森林和二叉树的转换 161
7.6.3 一般树或森林的遍历 163
思政要点 164
7.7 哈夫曼树及其应用 164
7.7.1 哈夫曼树的基本概念 164
7.7.2 哈夫曼树的构造及其算法 165
7.7.3 哈夫曼树的应用 167
思政要点 169
7.8 二叉树的ADT定义 169
思政要点 170
7.9 上机实验 170
思政要点 173
本章小结 173
习题7 175
第8章 图 178
8.1 图的实例及概念 179
8.1.1 实例 179
8.1.2 图的定义和基本概念 179
思政要点 182
8.2 图的存储结构及实现 182
8.2.1 邻接矩阵 183
8.2.2 邻接链表 190
8.2.3 图的ADT定义 199
8.3 遍历图 199
8.3.1 深度优先搜索法 200
8.3.2 广度优先搜索法 201
思政要点 203
8.4 *小生成树 204
8.4.1 *小生成树的基本概念 204
思政要点 205
8.4.2 普里姆算法 205
思政要点 208
8.4.3 克鲁斯卡尔算法 208
思政要点 209
8.5 *短路径 210
8.5.1 从某个源点到其他各顶点的*短路径 210
思政要点 213
8.5.2 求每一对顶点之间的*短路径 213
思政要点 216
8.6 上机实验 216
思政要点 221
本章小结 221
习题8 224
第9章 排序 227
9.1 排序的基本概念 228
思政要点 229
9.2 插入排序 229
9.2.1 直接插入排序 229
思政要点 231
9.2.2 希尔排序 231
思政要点 233
9.3 交换排序 233
9.3.1 冒泡排序 233
思政要点 234
9.3.2 快速排序 234
思政要点 237
9.4 选择排序 237
9.4.1 直接选择排序 237
思政要点 238
9.4.2 堆排序 238
思政要点 244
9.5 上机实验 244
思政要点 245
本章小结 246
习题9 246
第10章 查找 248
10.1 静态查找表 249
10.1.1 无序顺序表的查找 249
思政要点 250
10.1.2 有序顺序表的查找 251
思政要点 252
10.1.3 索引顺序表的查找 252
思政要点 255
10.2 动态查找表 255
10.2.1 二叉排序树 255
思政要点 259
10.2.2 平衡二叉树 260
思政要点 261
10.3 哈希表及其查找 261
10.3.1 哈希表与哈希函数 261
思政要点 262
10.3.2 构造哈希函数的常用方法 263
思政要点 264
10.3.3 解决冲突的主要方法 264
思政要点 266
10.4 上机实验 266
思政要点 269
本章小结 269
习题10 269
参考文献 271