第1章 数组 1
1.1 数组概念 1
1.2 矩阵及其运算 8
1.3 数组应用举例 13
习题1 17
第2章 链表 18
2.1 单链表 18
2.2 循环链表 27
2.3 双向链表 31
2.4 链表应用举例 37
习题2 42
第3章 算法与数据结构绪论 43
3.1 数据结构 43
3.2 抽象数据类型 45
3.3 算法与算法分析 46
3.4 程序设计 52
习题3 56
第4章 线性表 58
4.1 线性表的定义与实现 58
4.2 线性表应用举例 68
习题4 71
第5章 栈 72
5.1 栈的定义与实现 72
5.2 算术表达式的求值 77
5.3 中序转前序或后序 80
5.4 前序或后序转中序 82
5.5 栈应用举例 82
习题5 89
第6章 递归 90
6.1 递归定义与递归模型 90
6.2 递归与迭代 92
6.3 递归评价 95
6.4 递归应用举例 97
习题6 100
第7章 队列 102
7.1 队列的定义与实现 102
7.2 队列的推广 108
7.3 队列应用举例 113
习题7 119
第8章 树 120
8.1 根本概念 120
8.2 二叉树 121
8.3 二叉树的存储表示 124
8.4 二叉树的遍历 128
8.5 常用二叉树 132
8.6 多元树与森林的二叉树表示法 140
8.7 二叉树应用举例 142
习题8 148
第9章 图 150
9.1 基本概念 150
9.2 图的表示法 151
9.3 图的遍历 155
9.4 最小代价生成树 164
9.5 图的最短路径 174
9.6 网络 181
习题9 185
第10章 排序 187
10.1 基本概念 187
10.2 内部排序法 188
习题10 205
第11章 搜索 207
11.1 基本概念 207
11.2 顺序搜索 207
11.3 二分搜索 209
11.4 二叉搜索树 213
习题11 220
第12章 散列 221
12.1 散列表 221
12.2 散列表的搜索 228
习题12 235
第13章 模板 236
13.1 函数模板 236
13.2 面向对象程序设计方法简介 239
习题13 247
参考文献 248