第1章 绪论 1
1.1 引言 1
1.2 数据结构的发展简史 2
1.3 什么是数据结构 3
1.4 基本概念和术语 4
1.5 算法和算法的描述 6
1.5.1 算法 6
1.5.2 算法的描述 6
1.5.3 算法评价 11
1.6 实训项目一——九九乘法表 13
本章小结 14
习题一 14
第2章 线性表 15
2.1 线性表的逻辑结构 15
2.2 线性表的顺序存储结构 17
2.2.1 线性表的顺序存储结构 17
2.2.2 线性表在顺序存储结构下的运算 17
2.2.3 线性表的顺序存储结构的特点 23
2.3 线性表的链式存储结构 24
2.3.1 线性链表 24
2.3.2 循环链表 32
2.3.3 双向链表 34
2.4 一元多项式的表示及相加 39
2.5 实训项目二——顺序表与链表的应用 44
本章小结 46
习题二 47
第3章 栈和队列 48
3.1 栈 48
3.1.1 栈的定义及运算 48
3.1.2 栈的存储和运算实现 50
3.2 队列 57
3.2.1 队列的定义及其运算 57
3.2.2 队列的存储和运算实现 58
3.3 实训项目三——栈与队列的应用 69
本章小结 71
习题三 71
第4章 串 72
4.1 串的基本概念 72
4.1.1 串的定义 72
4.1.2 主串和子串 72
4.2 串的存储结构 73
4.2.1 串值的存储 73
4.2.2 串名的存储映像 75
4.3 串的基本运算及其实现 75
4.3.1 串的基本运算 75
4.3.2 串的基本运算实现 76
4.4 实训项目四——学生成绩管理系统 81
本章小结 86
习题四 87
第5章 数组和广义表 88
5.1 数组 88
5.1.1 数组的概念 88
5.1.2 数组在计算机内的存放 89
5.1.3 数组元素的访问 89
5.2 多维数组及其存储结构 90
5.2.1 行优先顺序 91
5.2.2 列优先顺序 91
5.3 特殊矩阵及其压缩存储 92
5.3.1 特殊矩阵 92
5.3.2 压缩存储 93
5.4 稀疏矩阵 95
5.4.1 稀疏矩阵的存储 96
5.4.2 稀疏矩阵的运算 98
5.5 广义表 100
5.5.1 基本概念 100
5.5.2 基本运算 102
5.6 实训项目五——矩阵乘法 105
本章小结 108
习题五 108
第6章 树 110
6.1 树的结构定义与基本操作 110
6.1.1 树的定义及相关术语 110
6.1.2 树的表示 111
6.1.3 树的基本操作 112
6.2 二叉树 113
6.2.1 二叉树的定义 113
6.2.2 二叉树的性质 113
6.2.3 二叉树的存储结构 114
6.3 遍历二叉树 120
6.3.1 先序遍历 121
6.3.2 中序遍历 121
6.3.3 后序遍历 122
6.3.4 层次遍历 122
6.4 哈夫曼树 123
6.4.1 哈夫曼树的定义 123
6.4.2 构造哈夫曼树——哈夫曼算法 125
6.4.3 哈夫曼树的应用 129
6.5 实训项目六——二叉树的应用 130
本章小结 131
习题六 131
第7章 图 133
7.1 基本定义和术语 133
7.2 图的存储结构 137
7.2.1 邻接矩阵 138
7.2.2 邻接表 142
7.3 图的遍历 149
7.3.1 深度优先搜索法 149
7.3.2 广度优先搜索法 152
7.4 最小生成树 153
7.5 最短路径 160
7.5.1 单源点最短路径 160
7.5.2 所有顶点对之间的最短路径 166
7.6 拓扑排序 168
7.7 实训项目七——图的遍历 171
本章小结 176
习题七 177
第8章 查找 178
8.1 顺序查找 178
8.2 折半查找 180
8.3 分块查找 182
8.4 哈希法 183
8.4.1 哈希表和哈希函数的概念 183
8.4.2 哈希函数的构造方法 184
8.4.3 冲突处理 186
8.5 实训项目八——折半查找算法的应用 187
本章小结 189
习题八 189
第9章 排序 190
9.1 插入排序 191
9.1.1 线性插入排序 192
9.1.2 折半插入排序 193
9.2 希尔排序 195
9.3 选择排序 197
9.4 堆排序 199
9.5 快速排序 204
9.6 归并排序 206
9.7 基数排序 209
9.8 外部排序 212
9.9 各种排序方法的比较 213
9.10 实训项目九——排序系统 214
本章小结 223
习题九 223
第10章 文件 224
10.1 文件的基本概念 224
10.2 顺序文件 226
10.3 索引文件 227
10.4 索引顺序文件 228
10.5 直接存取文件 231
10.6 多关键字文件 232
10.6.1 多重表文件 232
10.6.2 倒排文件 233
10.7 实训项目十——图书馆借书系统 234
本章小结 235
习题十 235
参考文献 236