第1章 绪论
1.1 什么是数据结构
1.2 基本概念和常用术语
1.3 数据抽象和抽象数据类型
1.3.1 数据抽象
1.3.2 抽象数据类型
1.3.3 抽象数据类型描述和实现
1.4 算法和算法分析
1.4.1 算法及其性能标准
1.4.2 算法时间复杂度和渐近时间复杂度
1.4.3 算法的空间复杂度
小结
习题
第2章 线性表
2.1 线性表概念
2.2 线性表的顺序表示和实现
2.2.1 线性表的顺序存储结构
2.2.2 线性表在顺序存储结构下的运算
2.3 线性表的链式表示和实现
2.3.1 线性链表
2.3.2 循环链表
2.3.3 双向循环链表
2.3.4 顺序表和链表的比较
2.4 一元多项式的表示及相加
小结
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的定义及其运算
3.1.2 顺序栈
3.1.3 多栈共享邻接空间
3.1.4 链栈
3.1.5 栈的应用举例
3.1.6 栈与递归的实现
3.2 队列
3.2.1 队列的定义
3.2.2顺序队列
3.2.3 链队列
3.2.4 队列应用举例
小结
习题
第4章 串
4.1 串的类型定义
4.2 串的定长顺序存储
4.3 串的堆存储结构
4.3.1 串名存储映像
4.3.2 堆存储结构
4.3.3 基于堆结构的基本运算
4.4 串的块链存储结构
4.5 模式匹配
4.6 串的应用举例——正文编辑
小结
习题
第5章 数组和广义表
5.1 数组类型的定义
5.2 数组顺序存储和实现
5.3 矩阵压缩存储
5.3.1 对称矩阵
5.3.2 三角矩阵
5.3.3 带状矩阵
5.4 稀疏矩阵
5.4.1 稀疏矩阵三元组表存储
5.4.2 稀疏矩阵十字链表存储
5.5 广义表
5.5.1 广义表的定义和基本运算
5.5.2 广义表的存储
5.5.3 广义表基本操作的实现
小结
习题
第6章 树
6.1 树的基本概念
6.1.1 树的定义
6.1.2 树的逻辑表示方法
6.1.3 树的基本术语
6.1.4 树的抽象数据类型定义
6.1.5 树的存储结构
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.5.1 二叉树的基本运算
6.5.2 二叉树的基本运算算法实现
6.6 二叉树的构造
6.7 线索二叉树
6.7.1 线索二叉树的概念
6.7.2 线索化二叉树
6.7.3 遍历线索化二叉树
6.8 哈夫曼树
6.8.1 哈夫曼树的概述
6.8.2 哈夫曼树的构造算法
6.8.3 哈夫曼编码
小结
习题
第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.3.3 广度优先搜索遍历
7.3.4 非连通图的遍历
7.4 生成树和最小生成树
7.4.1 生成树的概念
7.4.2 最小生成树的定义
7.4.3 无向图的连通分量和生成树
7.4.4 有向图的强连通分量
7.4.5 普里姆算法
7.4.6 克鲁斯卡尔算法
7.5 最短路径
7.5.1 路径的概念
7.5.2 从一个顶点到其余各项点的最短路径
7.5.3每对顶点之间的最短路径
7.6 拓扑排序
7.7 AOE网与关键路径
小结
习题
第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 B-树
8.3.4 B+树
8.4 哈希表查找
8.4.1 哈希表的基本概念
8.4.2 哈希函数构造方法
8.4.3 哈希冲突解决方法
8.4.4 哈希表上的运算
小结
习题
第9章 内排序
9.1 排序的基本概念
9.2 插入排序
9.2.1 直接插入排序
9.2.2 希尔排序
9.3 交换排序
第10章 文件
第11章 上机实验题
参考文献