第一章 概论 1
1.1 数据结构的概念 1
1.2 为什么要学习数据结构 3
1.3 算法描述 5
1.4 算法分析 8
小结 11
习题 11
第二章 线性表 12
2.1 线性表的概念及运算 12
2.2 线性表的顺序存储 13
2.3 线性表的链式存储 18
2.4 顺序表和链表的比较 39
小结 40
习题 40
第三章 栈和队列 42
3.1 栈 42
3.2 栈的应用举例 46
3.3 队列 48
*3.4 队列的应用举例 54
习题 59
小结 59
第四章 串 60
4.1 串及其运算 60
4.2 串的存储结构 63
*4.3 串运算的实现 67
小结 70
习题 71
第五章 多维数据组和广义表 72
5.1 多维数组 72
5.2 矩陈的压缩存储 73
5.3 广义表的概念 80
*5.4 广义表的存储 82
小结 85
习题 85
第六章 树 87
6.1 树的概念 87
6.2 二叉树 89
6.3 二叉树的遍历 95
6.4 线索二叉树 98
6.5 树和森林 105
6.6 哈夫曼树及其应用 112
小结 120
习题 120
第七章 图 123
7.1 图的概念 123
7.2 图的存储 126
7.3 图的遍历 130
7.4 生成树和最小生成树 135
7.5 最短路径 142
*7.6 拓扑排序 151
*7.7 关键路径 155
小结 161
习题 161
第八章 排序 163
8.1 基本概念 163
8.2 插入排 序 164
8.3 交换排序 168
8.4 选择排序 173
8.5 归并排序 180
*8.6 分配排序 182
8.7 内部排序方法的比较和选择 184
*8.8 外部排序简介 186
习题 187
小结 187
第九章 查找 189
9.1 基本概念 189
9.2 线性表的查找 189
9.3 树表的查找 195
9.4 散列表的查找 210
小结 221
习题 221
10.1 文件的基本概念 223
第十章 文件 223
10.2 顺序文件 225
10.3 索引文件 226
10.4 索引顺序文件 227
10.5 散列文件 232
*10.6 多关键字文件 233
小结 235
习题 236
附录 C语言概要 237
参考文献 254