目录
第1章绪论
1.1数据结构的基本概念
1.1.1数据结构的实例
1.1.2数据结构的概念
1.1.3学习数据结构的理由
1.2算法分析的基本概念
1.2.1算法
1.2.2算法效率的分析
1.2.3算法效率的评价
1.3程序设计基础
1.3.1软件工程的基本概念
1.3.2软件设计基础
1.3.3编码基础
1.3.4计算机体系结构基础
习题1
第2章线性表
2.1线性表的基本概念
2.1.1线性表的基本运算
2.1.2一个有趣的问题
2.2线性表的顺序表示
2.2.1顺序表
2.2.2顺序表的基本运算
2.2.3顺序表的算法分析
2.3线性表的链式表示
2.3.1线性链表
2.3.2线性链表的基本运算
2.3.3顺序表和链式表的比较
2.4双链表和循环链表
2.4.1双链表
2.4.2循环链表
2.5线性表的应用
习题2
第3章栈和队列
3.1栈的概念及运算
3.1.1栈的概念
3.1.2栈的基本运算
3.1.3一个有趣的问题
3.2栈的存储和实现
3.2.1栈的顺序表示
3.2.2栈的链式表示
3.3栈的应用
3.3.1数制转换
3.3.2表达式求值
3.3.3栈与递归
3.3.4回溯法
3.4队列的概念及基本运算
3.4.1队列的概念
3.4.2队列的基本运算
3.4.3一个有趣的问题
3.5队列的存储结构及运算
3.5.1队列的顺序表示
3.5.2循环队列
3.5.3队列的链式表示
3.6队列的应用
习题3
第4章串、广义表及数组
4.1串的定义和基本运算
4.1.1串的定义
4.1.2串的基本运算
4.1.3一个有趣的问题
4.1.4串的定长顺序存储
4.1.5模式匹配
4.1.6串的链式存储结构
4.1.7串的应用
4.2广义表
4.2.1广义表的定义
4.2.2广义表的存储
4.3数组
4.3.1数组的定义和存储
4.3.2特殊矩阵的压缩存储
习题4
第5章树
5.1树的概念及基本运算
5.1.1树的概念
5.1.2树的基本术语
5.1.3树的基本运算
5.1.4一个有趣的问题
5.1.5树的存储
5.2二叉树的概念与性质
5.2.1二叉树的概念及基本运算
5.2.2二叉树的性质
5.2.3二叉树的存储
5.3二叉树的遍历
5.4二叉树遍历算法的应用
5.5线索二叉树
5.6树和二叉树
5.6.1树与二叉树的转换
5.6.2二叉树与森林的转换
5.7哈夫曼树及其应用
5.8树的应用
习题5
第6章图
6.1图的概念及运算
6.1.1图的概念
6.1.2图的基本运算
6.1.3一个有趣的问题
6.2图的存储
6.2.1数组表示
6.2.2邻接表表示
6.3图的遍历
6.3.1深度优先搜索遍历
6.3.2广度优先搜索遍历
6.4图的连通性问题
6.4.1无向图的连通性
6.4.2最小生成树
6.4.3Prim算法
6.4.4Kruskal算法
6.5最短路径
6.5.1单源点最短路径
6.5.2任意一对顶点之间的最短路径
6.6有向无环图的应用
6.6.1AOV网
6.6.2拓扑排序
6.6.3AOE网
6.6.4关键路径
6.7图的应用
习题6
第7章排序
7.1排序的基本概念
7.2一个有趣的问题
7.3插入排序
7.3.1直接插入排序
7.3.2折半插入排序
7.3.3希尔排序
7.4交换排序
7.4.1冒泡排序
7.4.2快速排序
7.5选择排序
7.5.1直接选择排序
7.5.2树形选择排序
7.5.3堆排序
7.6归并排序
7.7排序的应用
7.8各种排序方法的综合比较
习题7
第8章查找
8.1查找的基本概念
8.2一个有趣的问题
8.3静态查找表
8.3.1顺序查找法
8.3.2折半查找法
8.3.3分块查找法
8.4动态查找表
8.5B-树
8.6哈希表
8.6.1哈希法与哈希表
8.6.2冲突处理的方法
8.6.3哈希函数的构造方法
8.6.4哈希表的查找
8.7查找的应用
习题8
参考文献