第一章 绪论 1
本章学习导读 1
1.1 引言 1
1.2 数据结构的发展简史及其在计算机科学中所处的地位 1
1.3 什么是数据结构 2
1.4 基本概念和术语 3
1.5 算法和算法的描述 6
1.5.1 算法 6
1.5.2 算法的描述 6
1.5.3 算法评价 9
本章小结 11
习题一 11
第二章 线性表 12
本章学习导读 12
2.1 线性表的逻辑结构 12
2.2 线性表的顺序存储结构 13
2.2.1 线性表的顺序存储结构 13
2.2.2 线性表在顺序存储结构下的运算 15
2.3 线性表的链式存储结构 20
2.3.1 线性链表 20
2.3.2 循环链表 26
2.3.3 双向链表 28
2.4 一元多项式的表示及相加 31
本章小结 33
习题二 34
第三章 栈和队列 35
本章学习导读 35
3.1 栈 35
3.1.1 栈的定义及其运算 37
3.1.2 栈的顺序存储结构 38
3.1.3 多栈共享邻接空间 40
3.1.4 栈的链式存储结构 42
3.2 算术表达式求值 44
3.3 队列 49
3.3.1 队列的定义及其运算 50
3.3.2 队列的顺序存储结构 51
3.3.3 队列的链式存储结构 55
3.3.4 其他队列 57
本章小结 58
习题三 59
第四章 串 60
本章学习导读 60
4.1 串的基本概念 60
4.1.1 串的定义 60
4.1.2 主串和子串 60
4.2 串的存储结构 61
4.2.1 串值的存储 61
4.2.2 串名的存储映像 63
4.3 串的基本运算及其实现 64
4.3.1 串的基本运算 64
4.3.2 串的基本运算及其实现 65
4.4 文本编辑 68
本章小结 69
习题四 70
第五章 多维数组和广义表 71
本章学习导读 71
5.1 多维数组 71
5.1.1 多维数组的概念 71
5.1.2 多维数组在计算机内的存放 72
5.2 多维数组的存储结构 72
5.2.1 行优先顺序 72
5.2.2 列优先顺序 73
5.3 特殊矩阵及其压缩存储 73
5.3.1 特殊矩阵 73
5.3.2 压缩存储 75
5.4 稀疏矩阵 77
5.4.1 稀疏矩阵的存储 77
5.4.2 稀疏矩阵的运算 80
5.5 广义表 93
5.5.1 基本概念 93
5.5.2 存储结构 94
5.5.3 基本运算 96
本章小结 100
习题五 101
第六章 树 103
本章学习导读 103
6.1 树的结构定义与基本操作 103
6.1.1 树的定义及相关术语 103
6.1.2 树的存储结构 104
6.1.3 树的基本操作 105
6.2 二叉树 106
6.2.1 二叉树的定义与基本操作 106
6.2.2 二叉树的性质 108
6.2.3 二叉树的存储结构 109
6.2.4 树与二叉树的相互转换 110
6.3 遍历二叉树 111
6.3.1 先序遍历 112
6.3.2 中序遍历 112
6.3.3 后序遍历 113
6.3.4 层次遍历 114
6.3.5 遍历算法的应用 114
6.4 线索二叉树 116
6.4.1 中序次序线索化算法 117
6.4.2 在中根线索树上检索某结点的前驱算法 118
6.4.3 在中根线索树上检索某结点的后继算法 118
6.5 二叉排序树 119
6.5.1 二叉排序树的定义 119
6.5.2 二叉排序树的生成 119
6.5.3 删除二叉排序树上的结点 121
6.6 哈夫曼树和哈夫曼算法 122
6.6.1 哈夫曼树的定义 122
6.6.2 构造哈夫曼树——哈夫曼算法 124
6.6.3 哈夫曼树的应用 125
本章小结 127
习题六 128
第七章 图 130
本章学习导读 130
7.1 基本定义和术语 130
7.2 图的存储结构 133
7.2.1 邻接矩阵 133
7.2.2 邻接表 135
7.3 图的遍历 138
7.3.1 深度优先搜索法 138
7.3.2 宽度优先搜索法 141
7.4 最小生成树 144
7.5 最短路径 151
7.5.1 单源点最短路径 152
7.5.2 所有顶点对之间的最短路径 155
7.6 拓扑排序 157
本章小结 159
习题七 161
第八章 查找 162
本章学习导读 162
8.1 顺序查找 162
8.2 折半查找 164
8.3 分块查找 166
8.4 哈希法 167
8.4.1 哈希表和哈希函数的概念 168
8.4.2 哈希函数的构造方法 168
8.4.3 冲突处理 170
本章小结 173
习题八 173
第九章 排序 174
本章学习导读 174
9.1 插入排序 174
9.1.1 线性插入排序 174
9.1.2 折半插入排序 176
9.2 希尔排序 177
9.3 选择排序 179
9.4 堆排序 181
9.5 快速排序 185
9.6 归并排序 188
9.7 基数排序 190
9.8 外部排序 192
9.9 各种排序方法的比较 193
本章小结 194
习题九 195
第十章 文件 196
本章学习导读 196
10.1 文件的基本概念 196
10.2 顺序文件 198
10.3 索引文件 199
10.4 索引顺序文件 200
10.5 直接存取文件 203
10.6 多关键字文件 204
10.6.1 多重表文件 204
10.6.2 倒排文件 205
本章小结 206
习题十 206
参考文献 208