目录
第1章绪论
1.1引言
1.1.1学习目的
1.1.2课程内容
1.2基本概念
1.2.1数据与数据结构
1.2.2数据类型与抽象数据类型
1.3算法
1.3.1算法的概念
1.3.2算法描述
1.3.3算法分析
小结
习题1
第2章线性表
2.1线性表及其基本操作
2.1.1线性表的基本概念
2.1.2抽象数据类型描述
2.1.3线性表的存储和实现
2.2线性表的顺序存储
2.2.1顺序表
2.2.2顺序表的基本操作实现
2.3线性表的链式存储和实现
2.3.1单链表
2.3.2单链表的基本操作实现
2.3.3其他链表
2.4顺序表与链表的比较
小结
习题2
第3章栈和队列
3.1栈
3.1.1栈的基本概念
3.1.2栈的抽象数据类型描述
3.1.3顺序栈
3.1.4链栈
3.2队列
3.2.1队列的基本概念
3.2.2队列的抽象数据类型描述
3.2.3顺序队列
3.2.4链队列
3.2.5优先级队列
3.3栈和队列的比较
小结
习题3
第4章串和数组
4.1串
4.1.1串的基本概念
4.1.2串的抽象数据类型描述
4.1.3顺序串
4.1.4链串
4.2串的模式匹配
4.2.1Brute Force算法
4.2.2KMP算法
4.3数组
4.3.1数组的基本概念
4.3.2数组的特性
4.3.3数组的遍历
4.4特殊矩阵的压缩存储
4.4.1三角矩阵的压缩存储
4.4.2对称矩阵的压缩存储
4.4.3对角矩阵的压缩存储
4.4.4稀疏矩阵的压缩存储
小结
习题4
第5章树结构
5.1树
5.1.1树的基本概念
5.1.2树的术语
5.2二叉树
5.2.1二叉树的基本概念
5.2.2二叉树的性质
5.2.3二叉树的存储结构
5.2.4二叉树的遍历
5.2.5二叉树遍历算法的应用
5.2.6二叉树的建立
5.3哈夫曼树及哈夫曼编码
5.3.1哈夫曼树的基本概念
5.3.2哈夫曼树的构造
5.3.3哈夫曼编码
5.3.4构造哈夫曼树和哈夫曼编码的类的描述
5.4树和森林
5.4.1树的存储结构
5.4.2树的遍历规则
小结
习题5
第6章图
6.1图概述
6.1.1图的基本概念
6.1.2图的抽象数据类型描述
6.2图的存储结构
6.2.1邻接矩阵
6.2.2邻接表
6.3图的遍历
6.4最小生成树
6.4.1最小生成树的基本概念
6.4.2Kruskal算法
6.4.3Prim算法
6.5最短路径
6.5.1单源最短路径
6.5.2求任意两个顶点间的最短路径
6.6拓扑排序和关键路径
6.6.1拓扑排序
6.6.2关键路径
小结
习题6
第7章排序
7.1排序概述
7.1.1排序的基本概念
7.1.2排序算法的性能评价
7.1.3待排序的记录和顺序表的类描述
7.2插入排序
7.2.1直接插入排序
7.2.2希尔排序
7.3交换排序
7.3.1冒泡排序
7.3.2快速排序
7.4选择排序
7.4.1直接选择排序
7.4.2堆排序
7.5归并排序
小结
习题7
第8章查找
8.1查找的基本概念
8.1.1什么是查找
8.1.2查找表
8.1.3平均查找长度
8.2静态表查找
8.2.1顺序查找
8.2.2二分查找
8.2.3分块查找
8.3动态表查找
8.3.1二叉排序树查找
8.3.2平衡二叉树
8.3.3B-树和B+树
8.4哈希表查找
8.4.1哈希表的概念
8.4.2哈希函数
8.4.3解决冲突的方法
8.4.4哈希表查找性能分析
小结
习题8
附录A数据结构试卷
数据结构试卷(一)
数据结构试卷(二)
数据结构试卷(三)
数据结构试卷(四)
数据结构试卷(五)
附录B实践题
第2章线性表
第3章栈和队列
第4章串和数组
第5章树结构
第6章图
第7章排序
第8章查找
参考文献