第1章 引论
1.1 算法及其复杂性的概念
1.1.1 算法与程序
1.1.2 算法复杂性的概念
1.1.3 算法复杂性的渐近性态
1.2 算法的表达与数据表示
1.2.1 问题求解
1.2.2 表达算法的抽象机制
1.3 抽象数据类型
1.3.1 抽象数据类型的基本概念
1.3.2 使用抽象数据类型的好处
1.4 数据结构、数据类型和抽象数据类型
1.5 用C语言描述数据结构与算法
1.5.1 变量和指针
1.5.2 函数与参数传递
1.5.3 结构
1.5.4 动态存储分配
1.6 递归
1.6.1 递归的基本概念
1.6.2 间接递归
本章小结
习题1
算法实验1
算法实验题1.1 哥德巴赫猜想问题
算法实验题1.2 连续整数和问题
第2章 表
2.1 表的基本概念
2.2 用数组实现表
2.3 用指针实现表
2.4 用间接寻址方法实现表
2.5 用游标实现表
2.6 循环链表
2.7 双链表
2.8 表的搜索游标
2.8.1 用数组实现表的搜索游标
2.8.2 单循环链表的搜索游标
2.9 应用举例——Josephus排列问题
本章小结
习题2
算法实验2
算法实验题2.1 向量分类问题
算法实验题2.2 条形图轮廓问题
第3章 栈
3.1 栈的基本概念
3.2 用数组实现栈
3.3 用指针实现栈
3.4 应用举例——等价类划分问题
本章小结
习题3
算法实验3
算法实验题3.1 车皮编序问题
算法实验题3.2 单柱Hanoi塔问题
算法实验题3.3 多栈模拟问题
算法实验题3.4 亲兄弟问题
第4章 队列
4.1 队列的基本概念
4.2 用指针实现队列
4.3 用循环数组实现队列
4.4 应用举例——电路布线问题
本章小结
习题4
算法实验4
算法实验题4.1 组队列问题
算法实验题4.2 双栈队列问题
算法实验题4.3 猴子分桃问题
算法实验题4.4 逆序表问题
第5章 排序与选择
5.1 简单排序算法
5.1.1 冒泡排序
5.1.2 插入排序
5.1.3 选择排序
5.1.4 简单排序算法的计算复杂性
5.2 快速排序算法
5.2.1 算法基本思想及实现
5.2.2 算法的性能
5.2.3 随机快速排序算法
5.2.4 非递归快速排序算法
……
第6章 树
第7章 图
第8章 集合
第9章 符号表
第10章 字典
第11章 优先队列
第12章 并查集
参考文献