第1章概论
1.1数据结构的地位
1.2基本概念和术语
1.2.1数据结构的基本概念
1.2.2数据结构的种类
1.2.3数据结构的数学定义
1.2.4数据的存储结构
1.2.5抽象数据类型
1.3数学预备知识
1.3.1集合
1.3.2常用的数学术语
1.3.3对数
1.4算法和算法分析
1.4.1算法的定义和特性
1.4.2算法设计的要求
1.4.3算法的时间效率分析
1.4.4算法的空间效率分析
本章小结
习题1
第2章线性表
2.1线性表的基本概念
2.1.1线性表的定义
2.1.2线性表的特点
2.1.3线性表的抽象数据类型
2.2线性表的顺序存储
2.2.1顺序存储的定义
2.2.2顺序表基本操作分析
2.2.3顺序表源码实现
2.2.4顺序表中的复杂操作
2.2.5Java基础类库中的顺序表
2.3线性表的链式存储
2.3.1链式存储的基本概念
2.3.2单链表基本操作分析
2.3.3单链表源码实现
2.3.4单链表中的复杂操作
2.3.5其他形式的链表
2.3.6Java基础类库中的链表
2.4顺序表和链表的比较
2.5一元多项式的表示和运算
本章小结
习题2
第3章栈和队列
3.1栈的基本概念
3.1.1栈的相关定义
3.1.2栈的抽象数据类型
3.2栈的顺序存储
3.2.1栈的顺序存储定义
3.2.2顺序栈基本操作分析
3.2.3顺序栈源码实现
3.2.4Java基础类库中的顺序栈
3.3栈的链式存储
3.3.1栈的链式存储定义
3.3.2链栈源码实现
3.4栈的应用举例
3.4.1数制转换
3.4.2表达式求值
3.5队列的基本概念
3.5.1队列的相关定义
3.5.2队列的抽象数据类型
3.6队列的链式存储
3.6.1队列的链式存储定义
3.6.2链队列基本操作分析
3.6.3链队列源码实现
3.7队列的顺序存储
3.7.1队列的顺序存储定义
3.7.2顺序队列基本操作分析
3.7.3循环顺序队列源码实现
3.8Java基础类库中的队列
3.9队列的应用举例
本章小结
习题3
第4章串
4.1串的基本概念
4.1.1串的相关定义
4.1.2串的抽象数据类型
4.2串的顺序存储
4.2.1串的顺序存储定义
4.2.2顺序串源码实现
4.3Java语言中的顺序串
4.4串的链式存储
本章小结
习题4
第5章数组、矩阵和广义表
5.1数组
5.1.1数组的定义
5.1.2数组的存储
5.2矩阵
5.2.1特殊矩阵的压缩存储
5.2.2稀疏矩阵的压缩存储
5.3广义表
5.3.1广义表的定义
5.3.2广义表的抽象数据类型
5.3.3广义表的存储结构
5.3.4求广义表深度基本操作的实现
5.3.5m元多项式的表示
本章小结
习题5
第6章树和二叉树
6.1树
6.1.1树的定义
6.1.2树的基本术语
6.1.3树的表示形式
6.1.4树的抽象数据类型
6.2二叉树
6.2.1二叉树的定义
6.2.2二叉树的性质
6.2.3二叉树的存储结构
6.3二叉树的遍历和线索链表
6.3.1二叉树的遍历
6.3.2二叉线索链表
6.4树和森林
6.4.1树的存储
6.4.2森林与二叉树的转换
6.4.3树与森林的遍历
6.5树与等价问题
6.6哈夫曼树及其应用
6.6.1哈夫曼树
6.6.2哈夫曼树的应用
6.7回溯法与树的遍历
6.8树的计数
本章小结
习题6
第7章图
7.1图的基本概念
7.1.1有向图
7.1.2无向图
7.1.3图的抽象数据类型
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无向图的连通分量和生成树
7.4.2有向图的强连通分量
7.4.3最小生成树
7.4.4关节点和重连通分量
7.5有向无环图及其应用
7.5.1拓扑排序
7.5.2关键路径
7.6最短路径
7.6.1从某个顶点到其余各顶点的最短路径
7.6.2每一对顶点之间的最短路径
本章小结
习题7
第8章查找
8.1查找的基本概念
8.2静态查找
8.2.1顺序查找
8.2.2折半查找
8.2.3分块查找
8.3动态查找
8.3.1二叉排序树的定义
8.3.2二叉排序树的查找
8.3.3二叉排序树的插入
8.3.4二叉排序树的删除
8.3.5二叉排序树的查找分析
8.4平衡二叉树
8.4.1平衡二叉树的定义
8.4.2平衡化旋转
8.4.3平衡二叉排序树的插入
8.4.4平衡二叉排序树构造示例
8.4.5平衡二叉排序树查找分析
8.5索引查找
8.5.1顺序索引表
8.5.2树形索引表
8.6哈希查找
8.6.1哈希查找的基本概念
8.6.2哈希函数的构造方法
8.6.3冲突处理的方法
8.6.4哈希查找过程及分析
本章小结
习题8
第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.6.1多关键字排序
9.6.2链式基数排序
9.7各种内部排序的比较
本章小结
习题9
参考文献