第 1章 绪论 1
1.1 基本概念和术语 1
1.2 逻辑结构与存储结构 2
1.2.1 逻辑结构 2
1.2.2 存储结构 3
1.3 算法 3
1.3.1 算法的定义 3
1.3.2 算法的特性 4
1.3.3 算法的设计要求 4
1.3.4 算法的效率评价 5
1.3.5 算法的时间复杂度 5
1.3.6 算法的空间复杂度 7
1.4 小结 7
1.5 习题 8
第 2章 线性表 10
2.1 定义 10
2.2 顺序表 10
2.2.1 存储结构 10
2.2.2 基本操作 11
2.3 单链表 14
2.3.1 存储结构 14
2.3.2 基本操作 15
2.3.3 单链表与顺序表的比较 22
2.4 双链表 23
2.4.1 存储结构 23
2.4.2 基本操作 23
2.5 循环链表 31
2.5.1 存储结构 31
2.5.2 基本操作 31
2.6 链表的应用 36
2.6.1 约瑟夫环 36
2.6.2 多项式相加 39
2.7 小结 42
2.8 习题 43
第3章 栈和队列 44
3.1 栈 44
3.1.1 定义 44
3.1.2 基本概念 44
3.1.3 顺序栈 45
3.1.4 链栈 47
3.1.5 栈的应用 49
3.2 队列 55
3.2.1 定义 55
3.2.2 基本概念 55
3.2.3 顺序队列 56
3.2.4 链式队列 60
3.2.5 队列的应用 63
3.3 小结 68
3.4 习题 68
第4章 串 70
4.1 串的定义 70
4.2 串的模式匹配算法 70
4.2.1 Brute-Force算法 71
4.2.2 KMP算法 73
4.3 小结 80
4.4 习题 80
第5章 广义表 81
5.1 定义 81
5.2 基本术语 81
5.3 存储结构 82
5.4 基本操作 83
5.5 广义表的应用 83
5.6 小结 86
5.7 习题 86
第6章 树和二叉树 87
6.1 树 87
6.1.1 树的定义 87
6.1.2 基本术语 88
6.1.3 存储结构 89
6.2 二叉树 92
6.2.1 二叉树的定义 92
6.2.2 二叉树的基本形态 92
6.2.3 满二叉树和完全二叉树 93
6.2.4 二叉树的性质 94
6.2.5 顺序存储结构 95
6.2.6 链式存储结构 96
6.2.7 遍历二叉树 98
6.2.8 二叉树的其他操作 101
6.3 树和森林 102
6.3.1 树转换为二叉树 102
6.3.2 森林转换为二叉树 103
6.4 二叉树的应用 104
6.5 小结 106
6.6 习题 106
第7章 常用二叉树 108
7.1 二叉搜索树 108
7.2 堆 116
7.2.1 堆的定义 116
7.2.2 存储结构 116
7.2.3 基本操作 117
7.3 哈夫曼树 121
7.3.1 基本术语 121
7.3.2 构造哈夫曼树 122
7.3.3 哈夫曼树的实现 123
7.4 平衡二叉树 125
7.4.1 存储结构 125
7.4.2 基本操作 126
7.5 小结 131
7.6 习题 132
第8章 图 134
8.1 图的基本概念 134
8.1.1 定义 134
8.1.2 基本术语 134
8.2 图的存储结构 140
8.2.1 邻接矩阵 140
8.2.2 邻接表 143
8.2.3 十字链表 149
8.3 图的遍历 153
8.3.1 深度优先遍历 153
8.3.2 广度优先遍历 159
8.4 最小生成树 164
8.4.1 Prim算法 164
8.4.2 Kruskal算法 170
8.5 最短路径 175
8.5.1 Dijkstra算法 176
8.5.2 Floyd算法 181
8.5.3 Bellman-Ford算法 188
8.6 拓扑排序 193
8.7 AOE网和关键路径 198
8.7.1 AOE网 198
8.7.2 求解关键路径 198
8.8 小结 206
8.9 习题 207
第9章 排序 208
9.1 插入排序 208
9.1.1 直接插入排序 208
9.1.2 希尔排序 211
9.2 选择排序 213
9.2.1 直接选择排序 213
9.2.2 堆排序 215
9.3 交换排序 218
9.3.1 冒泡排序 218
9.3.2 快速排序 220
9.4 归并排序 222
9.5 小结 225
9.6 习题 225
第 10章 查找 227
10.1 基本概念 227
10.2 顺序查找 228
10.3 二分查找 228
10.4 分块查找 229
10.5 B-树 230
10.5.1 基本概念 230
10.5.2 基本操作 230
10.6 哈希表 235
10.6.1 基本概念 235
10.6.2 构造方法 235
10.6.3 处理冲突 236
10.7 小结 238
10.8 习题 238