第1章 绪论 1
1.1 数据结构的概念 1
1.2 为什么要学习数据结构 2
1.3 算法 4
第2章 线性表 10
2.1 基本概念与抽象数据类型 10
2.2 顺序表示 12
2.3 链式表示 14
2.4 单链表的改进和扩充 21
2.5 应用举例 23
第3章 栈和队列 30
3.1 栈 30
3.2 队列 36
第4章 串 49
4.1 串的基本概念与抽象数据类型 49
4.2 串的存储结构 52
4.3 串运算的实现 56
4.4 KMP算法 60
第5章 多维数组和广义表 65
5.1 多维数组 65
5.2 矩阵的压缩存储 67
5.3 广义表 75
第6章 树 82
6.1 树、森林及其相关概念 82
6.2 二叉树及其相关特性 84
6.3 二叉树的存储 87
6.4 二叉树的遍历 90
6.5 线索二叉树 94
6.6 二叉树、树和森林之间的转换 99
6.7 哈夫曼树及其应用 101
第7章 图 111
7.1 图的概念 111
7.2 图的存储 114
7.3 图的遍历 121
7.4 生成树和最小生成树 131
7.5 最短路径 140
7.6 拓扑排序 145
7.7 关键路径 148
第8章 排序 158
8.1 基本概念 158
8.2 插入排序 160
8.3 交换排序 165
8.4 选择排序 171
8.5 归并排序 177
8.6 内部排序方法的比较和选择 182
第9章 查找 185
9.1 线性表的查找 185
9.2 树表的查找 190
9.3 散列表的查找 203
第10章 经典算法分析 216
10.1 分治算法 216
10.2 动态规划算法 219
10.3 贪心算法 223
10.4 回溯算法 228
10.5 分支限界算法 230
参考文献 235