第1章 绪论
1.1 数据结构的重要意义
1.1.1 计算机处理问题分类
1.1.2 非数值性问题求解
1.2 数据结构的相关概念
1.2.1 数据概念
1.2.2 结构概念
1.2.3 类型概念
1.3 算法描述及算法分析
1.3.1 算法概念
1.3.2 算法描述
1.3.3 算法分析
习题
第2章 线性表
2.1 线性表的逻辑结构
2.1.1 线性表的定义
2.1.2 线性表的抽象数据类型
2.2 线性表的顺序存储结构及操作实现
2.2.1 顺序表的定义
2.2.2 顺序表的操作实现
2.3 线性表的链式存储结构及操作实现
2.3.1 单链表的定义
2.3.2 单链表的操作实现
2.3.3 循环链表
2.3.4 双向链表
2.3.5 静态链表
2.4 线性表两种存储结构的比较
2.4.1 基于空间的比较
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 队列的链式存储结构及操作实现
习题
第4章 串
4.1 串的逻辑结构
4.1.1 串的定义
4.1.2 串的抽象数据类型
4.2 串的顺序存储结构与操作实现
4.2.1 静态顺序串的定义
4.2.2 动态顺序串的定义
4.2.3 顺序串的操作实现
4.2.4 串的块链存储方式
4.3 串的模式匹配
4.3.1 简单的模式匹配方法
4.3.2 改进的模式匹配方法
习题
第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 广义表的链式存储结构及操作实现
习题
第6章 树和二叉树
6.1 树的逻辑结构
6.1.1 树的定义
6.1.2 树的抽象数据类型
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.3 线索链表
6.5 树和森林与二叉树的转换
6.5.1 树与二叉树的转换
6.5.2 森林与二叉树的转换
6.6 哈夫曼树及其应用
6.6.1 哈夫曼树
6.6.2 哈夫曼编码
习题
第7章 图
7.1 图的逻辑结构
7.1.1 图的定义
7.1.2 图的抽象数据类型
7.2 图的存储结构与操作实现
7.2.1 图的存储结构
7.2.2 图的操作实现
7.3 图的连通性及其应用
7.3.1 无向图的连通分量
7.3.2 生成树和生成森林
7.3.3 最小生成树
7.4 有向无环图及其应用
7.4.1 拓扑排序
7.4.2 关键路径
习题
第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_树和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 交换排序
9.3.1 冒泡排序
9.3.2 快速排序
9.4 选择排序
9.4.1 简单选择排序
9.4.2 堆排序
9.5 归并排序
9.5.1 2-路归并排序
9.5.2 归并排序
9.6 基数排序
9.6.1 多关键字排序
9.6.2 链式基数排序
9.7 排序方法比较
习题
第10章 课程实验
10.1 实验概述
10.1.1 教学目的
10.1.2 实验步骤
10.1.3 报告示例
10.2 实验内容
10.2.1 线性表综合实验
10.2.2 栈综合实验
10.2.3 队列综合实验
10.2.4 广义表综合实验
10.2.5 树和二叉树综合实验
10.2.6 图综合实验
10.2.7 查找综合实验
10.2.8 排序综合实验
附录习题参考答案
参考文献