第一章 C++语言概述 1
指针和动态存储 1
指针 1
动态存储分配 2
数组 3
引用 5
参数传递 6
值传递 6
按引用调用 7
常值调用 7
数组参数传递 7
类 8
类声明 8
类实现 10
对象声明 10
多态性 11
友元函数 13
模板 14
模板函数 14
模板类 15
继承 16
第二章 算法分析简介 18
操作计数 19
最好、最坏和平均操作数 20
渐近符号(O、Ω、?) 22
符号O 22
符号Ω 23
符号? 24
实际复杂性 24
算法描述语言ADL 26
第三章 线性表、堆栈与队列 29
线性表的逻辑结构和基本操作 29
线性表的存储结构 29
顺序存储结构 29
链接存储结构 29
堆栈 31
队列 32
典型例题分析 33
习题 57
答案及提示 68
第四章 数组、字符串 71
数组 71
稀疏矩阵 72
三元组表 72
十字链表 72
字符串 72
字符串 72
串的存储方式 73
串的模式匹配 73
典型例题分析 73
习题 85
答案及提示 90
第五章 树和二叉树 96
树的基本概念 96
二叉树 97
二叉树的逻辑结构和主要性质 97
二叉树的存储结构 98
二叉树的遍历 99
线索二叉树 99
树和森林 100
树的顺序存储结构 100
树的链接存储结构 100
森林与二叉树的转换 101
树和森林的遍历 101
压缩与哈夫曼树 102
典型例题分析 103
习题 116
答案及提示 128
第六章 图 133
图的基本概念 133
图的存储结构 134
邻接矩阵 134
邻接表 135
邻接矩阵与邻接表的比较 136
图的主要操作 136
深度优先遍历 136
广度优先遍历 137
拓扑排序 137
关键路径 137
最短路径 138
最小支撑树 138
典型例题分析 138
习题 153
答案及提示 160
第七章 递归 169
递归 169
利用递归求解问题的几种情况 169
递归工作栈 170
递归到非递归的转换 170
典型例题分析 170
习题 178
答案及提示 182
第八章 排序 190
排序的基本知识 190
具体的内排序方法 191
内排序方法比较 200
外排序 201
典型例题分析 202
习题 217
答案及提示 221
第九章 查找 224
查找的基本知识 224
查找方法 225
典型例题分析 234
习题 247
答案及提示 253
第十章 复杂数据结构 257
优先级队列 257
不相交集合类 260
等价关系 260
动态等价 261
习题 261
第十一章 应用 263
事件驱动模拟 263
在线等价类 266
残缺棋盘 269
图像压缩 271
习题 273
参考文献 275