目录 1
第1章 绪论 1
1.1 简介 1
1.2 数据结构的定义 1
1.3 基本术语 3
1.4 数据的存储结构 7
1.4.1 顺序存储结构 8
1.4.2 链式存储结构 8
1.5 算法及算法分析 9
1.5.1 算法 9
1.5.2 算法分析 13
1.6 数据结构课程的地位 14
1.6.1 数据结构与其它课程的关系 14
1.6.2 “数据结构”课程的学习特点 15
习题 15
2.1 线性表的逻辑结构 17
第2章 线性表 17
2.2 线性表的顺序存储结构 20
2.3 线性表的链式存储结构 25
2.3.1 线性单链表 25
2.3.2 静态单链表 32
2.3.3 循环链表 35
2.3.4 双向链表 36
2.4 一元多项式的表示和相加 38
习题 41
实验 42
第3章 栈和队列 47
3.1 栈 47
3.1.1 栈的意义及抽象数据类型 47
3.1.2 栈操作的实现 48
3.2 栈的应用 53
3.3 队列 60
3.3.1 队列及其抽象数据类型 61
3.3.2 链队列——队列的链式存储结构 61
3.3.3 循环队列——队列的顺序存储结构 64
3.4 队列的应用 66
习题 68
实验 69
第4章 串 79
4.1 串的基本概念和存储结构 79
4.1.1 串的基本概念 79
4.1.2 串的存储结构 80
4.2 串基本操作的实现 82
4.3.1 子串定位函数 85
4.3 模式匹配 85
4.3.2 模式匹配的一种改进算法 87
4.4 串操作应用——文本编辑 91
习题 92
实验 93
第5章 数组和广义表 97
5.1 数组的定义和运算 97
5.2 数组顺序存储结构 98
5.3.1 特殊矩阵 100
5.3 矩阵的压缩存储 100
5.3.2 稀疏矩阵 102
5.4 广义表(LIST)的概念 105
5.5 广义表的存储结构 105
习题 106
实验 108
第6章 树与二叉树 113
6.1 树的逻辑结构和基本操作 113
6.2 二叉树 115
6.2.1 二叉树的定义及逻辑结构 115
6.2.2 二叉树的性质 116
6.2.3 二叉树的存储结构 118
6.3 遍历二叉树和线索二叉树 120
6.3.1 遍历二叉树 120
6.3.2 线索二叉树 125
6.4 树和森林 127
6.4.1 树的存储结构 127
6.4.2 森林与二叉树的转换 130
6.4.3 树的遍历 131
6.5 哈夫曼树及其应用 132
6.5.1 最优二叉树(哈夫曼树) 132
6.5.2 哈夫曼编码 134
习题 137
实验 139
7.1 图的定义与基本术语 145
7.1.1 图的定义 145
第7章 图 145
7.1.2 图的基本术语 147
7.2 图的存储 150
7.2.1 邻接矩阵表示法 150
7.2.2 邻接表表示法 153
7.2.3 十字链表表示法 155
7.2.4 邻接多重表表示法 157
7.3 图的遍历 159
7.3.1 深度优先搜索 159
7.3.2 广度优先搜索 162
7.4 图的连通性 164
7.4.1 无向图的连通分量与生成树 164
7.4.2 最小生成树 167
7.5 有向无环图及应用 170
7.5.1 拓扑排序(Topological Sort) 171
7.5.2 关键路径 174
7.6 最短路径 178
习题 180
实验 182
第8章 查找 189
8.1 查找的基本概念 189
8.2 基于线性表的查找 190
8.2.1 顺序查找 190
8.2.2 折半查找 192
8.2.3 分块查找 194
8.3 基于树的查找 196
8.3.1 二叉排序树 196
8.3.2 平衡二叉排序树 203
8.3.3 B树 209
8.3.4 静态树表的查找 218
8.4 哈希表 221
8.4.1 哈希表的概念 221
8.4.2 哈希函数的构造方法 223
8.4.3 处理冲突的方法 226
8.4.4 哈希表的查找过程 228
8.4.5 哈希表的查找分析 229
习题 230
实验 231
第9章 排序 236
9.1 概述 236
9.2 插入排序 238
9.2.1 直接插入排序 238
9.2.2 折半插入排序 240
9.2.3 2-路插入排序 241
9.2.4 表插入排序 242
9.2.5 希尔排序 245
9.3 交换排序 248
9.3.1 冒泡排序 248
9.3.2 快速排序 249
9.4 选择排序 251
9.4.1 简单选择排序 252
9.4.2 堆排序 253
9.5 归并排序 256
9.6.1 多关键字排序 258
9.6 基数排序 258
9.6.2 基数排序 259
9.7 外部排序 263
9.7.1 2路归并排序 263
9.7.2 多路归并排序 264
9.7.3 初始顺串的生成 267
习题 269
实验 270
参考文献 276