第1章 绪论
1.1 基本概念
1.1.1 数据的逻辑结构
1.1.2 数据的存储结构
1.1.3 数据的逻辑结构与存储结构的关系
1.2 抽象数据类型
1.2.1 算法
1.2.2 算法的分析
第2章 线性表
2.1 线性表的逻辑结构
2.2 线性表的顺序存储结构
2.3 线性表的链式存储结构
2.3.1 单链表
2.3.2 静态链表
2.3.3 循环链表
2.3.4 双向链表
第3章 栈和队列
3.1 栈
3.1.1 顺序栈
3.1.2 双栈
3.1.3 链栈
3.2 队列
3.2.1 队列的顺序存储结构和循环队列
3.2.2 循环队列
3.2.3 链队列
第4章 字符串
4.1 串类型的相关概念
4.2 字符串的存储表示和实现
4.2.1 定长顺序存储表示
4.2.2 堆分配存储表示和实现
4.2.3 串的块链存储表示
4.3 串的模式匹配算法
4.3.1 朴素的模式匹配算法
4.3.2 模式匹配算法的一种改进算法——KMP算法
第5章 数组和广义表
5.1 数组的定义
5.2 数组的顺序表示和实现
5.3 矩阵的压缩存储
5.3.1 特殊矩阵的压缩存储
5.3.2 稀疏矩阵的压缩存储
5.4 广义表
5.4.1 广义表的定义
5.4.2 广义表的存储结构99目录
第6章 树和二叉树
6.1 树
6.1.1 树的定义和相关术语
6.1.2 树的存储结构
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 完全二叉树的性质
6.2.4 二叉树的存储结构
6.3 遍历二叉树
6.3.1 先序遍历
6.3.2 中序遍历
6.3.3 后序遍历
6.3.4 按层次遍历
6.4 表达式树及其构造
6.4.1 由表达式构造表达式树
6.4.2 由前缀表达式构造表达式树
6.4.3 由后缀表达式构造表达式树
6.4.4 由后缀表达式求值
6.4.5 由(中缀)表达式直接求其前(后)缀表达式
6.5 线索二叉树
6.5.1 线索二叉树的定义
6.5.2 二叉树的线索化
6.5.3 线索二叉树上搜索指定结点的前驱、后继结点
6.6 树和森林与二叉树
6.6.1 树和森林与二叉树的转换
6.6.2 树和森林的遍历
6.7 哈夫曼树及其应用
6.7.1 哈夫曼树
6.7.2 哈夫曼编码
6.8 树与等价问题
第7章 图
7.1 图的定义和相关概念
7.1.1 图的定义
7.1.2 图的相关概念
7.2 图的存储表示
7.2.1 数组表示法
7.2.2 邻接表表示法
7.2.3 十字链表表示法
7.2.4 邻接多重表
7.3 图的基本操作及其实现
7.3.1 图的创建
7.3.2 图的遍历
7.4 最小生成树
7.4.1 Prim(普里姆)算法
7.4.2 Kruskal(克鲁斯卡尔)算法
7.5 关节点
7.6 有向无环图的应用
7.6.1 表达式的有向无环图
7.6.2 拓扑排序
7.6.3 关键路径
7.7 最短路径
7.7.1 单源点的最短路径问题
7.7.2 每一对顶点之间的最短路径问题
第8章 查找
8.1 基本概念和相关约定
8.1.1 基本概念
8.1.2 算法的平均查找长度
8.1.3 判定树
8.1.4 相关约定
8.2 静态查找表的查找算法
8.2.1 无序顺序表的查找——顺序查找法
8.2.2 有序顺序表的查找——折半查找法
8.2.3 次优查找树
8.2.4 索引顺序表的查找——分块查找
8.3 动态查找表
8.3.1 二叉排序树
8.3.2 平衡二叉树
8.3.3 B-树
8.3.4 B+树
8.3.5键树
8.4 哈希表
8.4.1 哈希函数的构造方法
8.4.2 处理冲突的方法
8.4.3 哈希表的查找
8.4.4 哈希表的插入和删除
8.5 各种查找方法的比较
第9章 排序
9.1 概论
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 希尔排序
9.3 交换排序
9.3.1 冒泡排序
9.3.2 快速排序
9.4 选择排序
9.4.1 简单选择排序
9.4.2 树形选择排序
9.4.3 堆排序
9.5 归并排序
9.6 基于关键字比较的排序算法的时间下界
9.7 基数排序
9.7.1 多关键字排序
9.7.2 链式基数排序
9.8 各种内部排序方法的比较
参考文献