出版者的话
专家指导委员会
译者序
前言
第1章 基本概念
1.1 综述:系统生命周期
1.2 算法描述
1.2.1 引言
1.2.2 递归算法
1.3 数据抽象
1.4 算法的性能分析
1.4.1 空间复杂性
1.4.2 时间复杂性
1.4.3 渐近记号(O,Ω,Θ)
1.4.4 实际可行的复杂性
1.5 性能测量
1.6 参考文献和文献选读
第2章 数组与结构
2.1 ADT数组
2.2 结构与共用体
2.2.1 结构
2.2.2 共用体
2.2.3 结构的内部实现
2.2.4 自引用结构
2.3 ADT多项式
2.4 ADT稀疏矩阵
2.4.1 概述
2.4.2 矩阵转置
2.4.3 矩阵乘法
2.5 多维数组的存储表示
2.6 ADT字符串
2.6.1 概述
2.6.2 模式匹配
2.7 参考文献和文献选读
2.8 附加习题
第3章 栈与队列
3.1 ADT栈
3.2 ADT队列
3.3 迷宫问题
3.4 表达式求值
3.4.1 概述
3.4.2 后缀表达式求值
3.4.3 中缀表达式到后缀表达式的转换
3.5 多栈和多队列
3.6 参考文献和文献选读
3.7 附加习题
第4章 链表
4.1 指针
4.1.1 指针的危险性
4.1.2 动态存储分配
4.2 单向链表
4.3 动态链栈与动态链队列
4.4 多项式
4.4.1 多项式的单向链表表示
4.4.2 多项式加法
4.4.3 多项式删除
4.4.4 多项式的循环链表表示
4.4.5 小结
4.5 链表的其他操作
4.5.1 单向链表的操作
4.5.2 循环链表的操作
4.6 等价关系
4.7 稀疏矩阵
4.8 双向链表
4.9 参考文献和文献选读
4.10 附加习题
第5章 树
5.1 概述
5.1.1 术语
5.1.2 树的存储表示
5.2 二叉树
5.2.1 抽象数据型
5.2.2 二叉树的性质
5.2.3 二叉树的存储表示
5.3 二叉树的遍历
5.4 二叉树的其他操作
5.5 线索二叉树
5.6 堆
5.6.1 ADT堆
5.6.2 优先级队列
5.6.3 最大堆的插入操作
5.6.4 最大堆的删除操作
5.7 二叉查找树
5.7.1 概述
5.7.2 二叉查找树的查找
5.7.3 二叉查找树的插入
5.7.4 二叉查找树的删除
5.7.5 二叉查找树的高度
5.8 选择树
5.9 森林
5.9.1 森林转换为二又树
5.9.2 森林的遍历
5.10 集合表示
5.10.1 Union和Find操作
5.10.2 等价类
5.11 二叉树计数
5.11.1 不同的二叉树
5.11.2 栈排列
5.11.3 矩阵乘法
5.11.4 不同的二叉树数量
5.12 参考文献和文献选读
5.13 附加习题
第6章 图
6.1 ADT图
6.1.1 概述
6.1.2 定义
6.1.3 图的存储表示
6.2 图的基本操作
6.2.1 深度优先搜索
6.2.2 广度优先搜索
6.2.3 连通分支
6.2.4 生成树
6.2.5 双连通分支与关节点
6.3 最小代价生成树
6.4 最短路径与传递闭包
6.4.1 单源多目标最短路径
6.4.2 所有顶点对之间的最短路径
6.4.3 传递闭包
6.5 活动网络
6.5.1 AOV网
6.5.2 AOE网
6.6 参考文献和文献选读
6.7 附加习题
第7章 排序
7.1 查找与表验证
7.1.1 概述
7.1.2 顺序查找
7.1.3 折半查找
7.1.4 表验证
7.2 定义
7.3 插入排序
7.4 快速排序
7.5 最优的排序时间
7.6 归并排序
7.6.1 归并
7.6.2 归并排序的迭代算法
7.6.3 归并排序的递归算法
7.7 堆排序
7.8 基数排序
7.9 利用链表和映射表进行排序
7.10 内部排序总结
7.11外部排序
7.11.1 概述
7.11.2 k路归并
7.11.3 并行操作的缓冲区处理
7.11.4 归并段的生成
7.11.5 归并段的最优归并
……
第8章 散列
第9章 堆结构
第10章 查找结构
附录 ANSI C和K&RC
索引
展开