本书是C++语言版的数据结构教材,在选材和编排上突出可读性、实用性和应用性,尽可能贴近当前普通高等院校数据结构课程的现状和发展趋势,符合最新研究生考试大纲。全书共9章,内容包括绪论、线性表、栈和队列、字符串和多维数组、树与二叉树、图、查找、内部排序、外部排序。书末附有二维码,读者可以通过扫描二维码进行学习参考。
更多科学出版社服务,请扫码获取。
目录
前言
第1章 绪论 1
1.1 数据结构在程序设计中的作用 1
1.2 本书讨论的主要内容 1
1.3 数据结构的相关概念 2
1.3.1 数据结构 2
1.3.2 抽象数据类型相关概念 3
1.4 算法及算法分析 4
1.4.1 算法及其描述方法 4
1.4.2 算法分析 7
习题1 9
第2章 线性表 13
2.1 线性表的逻辑结构 13
2.1.1 线性表的定义 13
2.1.2 线性表的抽象数据类型定义 13
2.2 线性表的顺序存储结构及实现 15
2.2.1 线性表的顺序存储结构——顺序表 15
2.2.2 顺序表的实现 16
2.3 线性表的链式存储结构及实现 20
2.3.1 单链表 20
2.3.2 循环链表 28
2.3.3 双链表 29
2.4 顺序表和链表的比较 30
2.4.1 时间性能比较 31
2.4.2 空间性能比较 31
2.5 线性表的其他存储方法 31
2.5.1 静态链表 31
2.5.2 间接寻址 33
2.6 应用举例 34
2.6.1 顺序表的应用举例——大整数求和 34
2.6.2 单链表的应用举例——一元多项式求和 35
习题2 37
第3章 栈和队列 42
3.1 栈 42
3.1.1 栈的逻辑结构 42
3.1.2 栈的顺序存储结构及实现 44
3.1.3 栈的链式存储结构及实现 48
3.1.4 顺序栈与链栈的比较 50
3.1.5 栈的应用举例 51
3.2 队列 52
3.2.1 队列的逻辑结构 52
3.2.2 队列的顺序存储结构及实现 53
3.2.3 队列的链式存储结构及实现 57
3.2.4 循环队列与链队列的比较 58
3.3 应用举例 59
习题3 62
第4章 字符串和多维数组 65
4.1 字符串.65
4.1.1 字符串的定义 65
4.1.2 字符串的存储结构 66
4.1.3 字符串的模式匹配 68
4.2 数组 71
4.2.1 数组的定义 72
4.2.2 数组的存储结构与寻址 72
4.3 矩阵的压缩存储 73
4.3.1 特殊矩阵的压缩存储 73
4.3.2 稀疏矩阵的压缩存储 75
4.4 广义表.77
4.5 应用举例 80
4.5.1 字符串的应用举例——凯撒密码 80
4.5.2 数组的应用举例——N阶幻方 80
习题4 81
第5章 树与二叉树 85
5.1 树的定义和基本术语 85
5.2 二叉树.89
5.2.1 二叉树的定义 89
5.2.2 二叉树的性质 91
5.2.3 二叉树的存储结构 94
5.3 遍历二叉树和线索二叉树 96
5.3.1 遍历二叉树 96
5.3.2 线索二叉树 98
5.4 树和森林 101
5.4.1 树的存储结构 101
5.4.2 森林与二叉树的转换 104
5.4.3 树与森林的遍历 106
5.5 哈夫曼树及编码 108
5.5.1 最优二叉树(哈夫曼树) 108
5.5.2 哈夫曼编码 111
5.6 树的计数 115
习题5 119
第6章 图 123
6.1 图的定义和术语 123
6.2 图的存储结构 128
6.2.1 数组表示法 129
6.2.2 邻接表 132
6.2.3 十字链表 133
6.2.4 邻接多重表 135
6.3 图的遍历 136
6.3.1 深度优先搜索 136
6.3.2 广度优先搜索 138
6.4 图的连通性问题 139
6.4.1 无向图的连通分量和生成树 139
6.4.2 有向图的强连通分量 141
6.4.3 最小生成树 141
6.4.4 关节点和重连通分量 145
6.5 有向无环图 148
6.5.1 拓扑排序 149
6.5.2 关键路径 152
6.6 最短路径 156
6.6.1 从某个源点到其余各顶点的最短路径 157
6.6.2 每一对顶点之间的最短路径 159
习题6 161
第7章 查找 164
7.1 静态查找表 166
7.1.1 顺序表的查找 166
7.1.2 有序表的查找 169
7.1.3 静态树表的查找 172
7.1.4 索引顺序表的查找 176
7.2 动态查找表 177
7.2.1 二叉排序树和平衡二叉树 178
7.2.2 B树和B+树 190
7.2.3 键树 196
7.3 哈希表 200
7.3.1 什么是哈希表 200
7.3.2 哈希函数的构造方法 202
7.3.3 处理冲突的方法 206
7.3.4 哈希表的查找及其分析 208
习题7 212
第8章 内部排序 217
8.1 内部排序概述.217
8.2 插入排序 219
8.2.1 直接插入排序 219
8.2.2 其他插入排序 220
8.2.3 希尔排序 225
8.3 快速排序 228
8.4 选择排序 232
8.4.1 简单选择排序 232
8.4.2 树形选择排序 234
8.4.3 堆排序 235
8.5 归并排序 238
8.6 基数排序 240
8.6.1 多关键字排序 240
8.6.2 链式基数排序 241
8.7 各种内部排序方法的比较讨论 243
习题8 247
第9章 外部排序 252
9.1 外存信息的存取 252
9.2 外部排序的方法 255
9.3 多路平衡归并的实现 256
9.4 置换-选择排序 259
9.5 最佳归并树 264
习题9 266
参考文献 269
赖振华 (2025/5/21 9:53:00):可以帮助我们更好的理解和学习数据结构