第一部分 预备知识
第1章 数据结构和算法
1.1 数据结构的原则
1.2 抽象数据类型和数据结构
1.3 问题、算法和程序
1.4 深入学习导读
1.5 习题
第2章 数学预备知识
2.1 集合和关系
2.2 常用数学术语
2.3 对数
2.4 递归
2.5 级数求和与递归
2.6 数学证明方法
2.7 评估
2.8 深入学习导读
2.9 习题
第3章 算法分析
3.1 概述
3.2 最佳、最差和平均情况
3.3 换一台更快的计算机,还是换一种更快的算法
3.4 渐近分析
3.5 程序运行时间的计算
3.6 问题的分析
3.7 容易混淆的概念
3.8 多参数问题
3.9 空间代价
3.10 实际操作中的一些因素
3.11 深入学习导读
3.12 习题
3.13 项目设计
第二部分 基本数据结构
第4章 线性表、栈和队列
4.1 线性表
4.2 字典ADT
4.3 栈
4.4 队列
4.5 深入学习导读
4.6 习题
4.7 项目设计
第5章 二叉树
5.1 定义及主要特性
5.2 周游二叉树
5.3 二叉树的实现
5.4 二叉查找树
5.5 堆与优先队列
5.6 Huffman编码树
5.7 深入学习导读
5.8 习题
5.9 项目设计
第6章 树
6.1 树的定义与术语
6.2 父指针表示法
6.3 树的实现
6.4 K叉树
6.5 树的顺序表示法
6.6 深入学习导读
6.7 习题
6.8 项目设计
第三部分 排序和检索
第7章 内排序
第8章 文件管理和外排序
第9章 检索
第10章 索引技术
第四部分 应用与高级话题
第11章 图
第12章 线性表和数组高级技术
第13章 高级树形结构
第14章 分析技术
第15章 计算的限制
附录A 实用函数
参考文献