编者的话 1
前言 1
第1章 引论 1
1.1 基本概念 1
目录 1
1.2 算法的描述和实现 2
1.3 算法性能的评价 9
1.4 小结 12
1.5 本章算法的配套程序 12
1.6 习题 16
第2章 线性表、栈和队 17
2.1 线性表的概念及其存储方法 17
2.2.1 查找 18
2.2 顺序表的查找、插入和删除 18
2.2.2 插入 20
2.2.3 删除 27
2.3 栈 31
2.3.1 栈的概念和运算 31
2.3.2 栈的应用 35
2.4 队 37
2.4.1 队的概念 37
2.4.2 循环队 40
2.5 小结 43
2.6 本章算法的配套程序 44
2.7 习题 64
3.1.1 链表的由来 66
3.1 链表的基本概念 66
第3章 链表 66
3.1.2 链表的定义和基本形式 68
3.1.3 结点的产生和基本用法 69
3.1.4 插入、删除结点的链操作方法 73
3.1.5 带表头监督元结点的链表和循环链表 77
3.2 链表的构造、查找和输出 78
3.2.1 链表的构造 78
3.2.2 链表的查找和输出 82
3.3 有序链表 84
3.3.1 有序链表的插入和构造 84
3.3.2 有序链表的删除 88
3.4 小结 89
3.5 本章算法的配套程序 90
3.6 习题 99
第4章 树 100
4.1 基本概念 100
4.1.1 树结构的有关术语 100
4.1.2 二叉树 102
4.1.3 满二叉树和完全二叉树 104
4.1.4 树、森林和二叉树的相互转换 105
4.2 二叉树的遍历 108
4.2.1 二叉树的遍历运算 108
4.2.2 遍历函数 113
4.2.3 遍历运算的应用 115
4.3 二叉树的构造方法 117
4.3.1 用两个遍历序列构造二叉树 117
4.3.2 用扩充先序序列构造二叉树 121
4.4.1 检索树的概念和性质 123
4.4.2 检索树的查找 123
4.4 检索树 123
4.4.3 检索树的插入 125
4.4.4 检索树的构造 129
4.4.5 检索树的删除 130
4.5 哈夫曼树 135
4.5.1 哈夫曼编码 135
4.5.2 哈夫曼算法 139
4.6 小结 142
4.7 本章算法的配套程序 143
4.8 习题 174
5.1.1 有关术语 177
第5章 图 177
5.1 基本概念 177
5.1.2 图的存储方法 180
5.2 深度优先搜索 182
5.2.1 搜索算法的描述 182
5.2.2 搜索算法的实现 185
5.3 最小生成树 186
5.3.1 Kruskal算法 187
5.3.2 Prim算法 189
5.4 最短路径 192
5.4.1 Dijkstra算法的描述 192
5.4.2 示例 193
5.5 小结 195
5.6 本章算法的配套程序 196
5.7 习题 201
第6章 排序 204
6.1 插入排序 204
6.1.1 直接插入排序 205
6.1.2 二分插入排序 206
6.2 冒泡排序 207
6.3 快速排序 212
6.4 堆排序 216
6.5 小结 222
6.6 本章算法的配套程序 222
6.7 习题 239
附录B 引用运算符&的使用方法 241
附录A 关于算法配套程序的几点说明 241
附录 241
附录C VC的简单用法 244
C.1 VC的基本功能 244
C.2 工作间的简单操作方法 246
C.3 编译、连接和运行 252
C.4 调试程序 255
附录D TC的简单用法 258
D.1 TC 2.0的主界面 258
D.2 编辑源程序文件 260
D.3 常用编辑命令 260
D.4 编译、运行和调试 261
D.5 其他命令 262
D.6 TC 3.0与TC 2.0的区别和联系 264