第一章 绪论 1
1.1基本概念和术语 1
1.2算法的描述和分析 3
习题 6
第二章 线性表 8
2.1线性表的定义和运算 8
2.1.1线性表的定义 8
2.1.2线性表的运算 8
2.2线性表的顺序存储结构 9
2.2.1顺序表 9
2.2.2插入 10
2.2.3删除 11
2.2.4查找 11
2.2.5插入、删除运算的时间分析 11
2.3线性表的链式存储结构 12
2.3.1线性链表 12
2.3.2单链表的基本运算 15
2.3.3链表的其他运算示例 18
2.4栈 22
2.4.1栈的定义和运算 22
2.4.2顺序栈和主要运算的实现 22
2.4.3链栈 25
2.5栈与递归 26
2.6队列 29
2.6.1队列的定义 29
2.6.2队列的顺序存储结构 30
2.6.3链队 32
2.7循环链表和双向链表 33
2.7.1循环链表 33
2.7.2双向链表 35
2.8一元多项式相加 37
习题 39
第三章 数组和广义表 43
3.1数组 43
3.1.1数组的定义和运算 43
3.1.2数组的顺序存储结构 43
3.1.3特殊矩阵 44
3.2稀疏矩阵 46
3.2.1三元组表示 46
3.2.2十字链表 49
3.3广义表 51
3.3.1广义表定义 51
3.3.2广义表的存储结构 52
3.3.3 m元多项式的表示 53
习题 55
第四章 树和二叉树 58
4.1树的定义和术语 58
4.2二叉树 59
4.2.1二叉树的定义和性质 59
4.2.2几种特殊形态的二叉树 60
4.2.3二叉树的存储结构 61
4.2.4树与二叉树的转换 62
4.2.5森林与二叉树转换 63
4.3遍历二叉树 64
4.3.1遍历二叉树的定义及递归算法 64
4.3.2遍历二叉树的非递归算法 67
4.3.3由结点先序序列和中序序列构造对应的二叉树 69
4.4线索二叉树 70
4.5树的存储结构和遍历 73
4.5.1树的存储结构 73
4.5.2树的遍历 76
4.6哈夫曼树 78
习题 82
第五章 图 87
5.1图的概念及术语 87
5.2图的存储结构 89
5.2.1邻接矩阵 89
5.2.2邻接表 90
5.2.3邻接多重表 92
5.3图的遍历 93
5.3.1深度优先搜索 93
5.3.2广度优先搜索 94
5.4最小生成树 96
5.4.1普里姆算法 97
5.4.2克鲁斯卡尔算法 100
5.5最短路径 102
5.5.1求从一个顶点到其他各顶点的最短路径 102
5.5.2求每一对顶点之间的最短路径 104
5.6拓扑排序 105
5.7关键路径 108
习题 111
第六章 串 115
6.1串的基本概念和存储结构 115
6.1.1串的顺序存储结构 115
6.1.2串的链式存储结构 116
6.2串的基本运算 116
6.3模式匹配 118
习题 122
第七章 集合 124
7.1集合的概念及主要运算 124
7.2集合的存储表示 125
7.2.1字位串存储表示 125
7.2.2链式存储表示 126
7.2.3顺序存储表示 128
7.2.4散列存储表示 129
7.3典型的集合结构 129
7.3.1字典 129
7.3.2优先队列 130
习题 131
第八章 查找 132
8.1线性表查找 132
8.1.1顺序查找 132
8.1.2二分法查找 133
8.1.3分块查找 135
8.2散列表和查找 136
8.2.1散列函数 136
8.2.2冲突的处理 138
8.2.3性能分析 142
8.3二叉排序树 143
8.3.1二叉排序树的定义和运算 143
8.3.2最佳二叉排序树 147
8.3.3平衡二叉排序树 148
习题 151
第九章 排序 155
9.1插入排序 155
9.1.1直接插入排序 155
9.1.2二分法插入排序 157
9.1.3希尔排序 158
9.2选择排序 159
9.2.1直接选择排序 159
9.2.2堆排序 160
9.3交换排序 164
9.3.1起泡排序 164
9.3.2快速排序 165
9.4基数排序 167
9.5归并排序 170
9.6内部排序方法的选择和使用 171
9.7外部排序 172
9.7.1外部排序的基本过程 173
9.7.2 k路平衡归并与败者树 174
9.7.3初始归并段的生成 175
9.7.4最佳归并树 176
习题 178
第十章 文件 182
10.1顺序文件 182
10.2索引文件 183
10.2.1索引顺序文件 183
10.2.2索引无序文件 183
10.2.3 B-树 183
10.2.4 B+树 187
10.3散列文件 189
10.4倒排文件 190
习题 191
第十一章 常用算法设计方法 194
11.1递推法 194
11.2分治法 194
11.3回溯法 197
11.4贪心法 200
11.5动态规划法 201
习题 202
参考文献 203