内容简介
第1章 绪论
1.1 什么是数据结构
1.2 数据结构的概念及有关术语
1.3 算法和算法分析
习题
第2章 线性表
2.1 线性表的定义
2.2 线性表的基本运算
2.3 顺序存储结构线性表
2.3.1 线性表的顺序存储结构
2.3.2 顺序存储结构线性表的基本运算
2.3.3 顺序存储结构线性表的应用
2.4 链式存储结构线性表
2.4.1 单链表
2.4.2 循环链表
2.4.3 双向链表
2.4.4 静态链表
2.4.5 链式存储结构线性表的应用
2.5 小结
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的定义及基本运算
3.1.2 顺序存储结构栈的基本运算
3.1.3 链式存储结构栈的基本运算
3.1.4 栈的应用实例
3.1.5 栈与递归
3.2 队列
3.2.1 队列的定义及基本运算
3.2.2 顺序存储结构队列的基本运算
3.2.3 链式存储结构队列的基本运算
3.2.4 队列的应用
3.3 小结
习题
第4章 串
4.1 串的概念及基本运算
4.1.1 串的基本概念
4.1.2 串的基本运算
4.2 顺序存储结构串的运算
4.2.1 串的定长顺序存储结构
4.2.2 定长顺序存储结构串的基本运算
4.3 串的堆分配存储结构及其运算
4.3.1 串的堆分配存储结构
4.3.2 堆分配存储结构串的运算
4.4 串的链式存储结构及基本运算
4.4.1 串的链式存储结构
4.4.2 链串的基本运算
4.5 串的模式匹配
4.5.1 简单模式匹配算法——BF算法
4.5.2 无回溯的模式匹配算法——KMP算法
4.5.3 next函数的改进
4.6 小结
习题
第5章 数组和广义表
5.1 数组
5.1.1 数组的定义及逻辑结构
5.1.2 数组的存储结构
5.1.3 特殊矩阵的压缩存储
5.1.4 数组应用举例
5.2 广义表
5.2.1 广义表的定义
5.2.2 广义表的存储结构
5.2.3 广义表基本操作实现
5.2.4 广义表应用举例
5.3 小结
习题
第6章 树和二叉树
6.1 树的定义及有关术语
6.1.1 树的定义
6.1.2 常用术语
6.2 二叉树
6.2.1 二叉树的定义
6.2.2 二叉树的性质
6.2.3 二叉树的存储结构
6.2.4 二叉树的遍历
6.2.5 线索二叉树
6.2.6 哈夫曼树
6.3 树和森林
6.3.1 树的存储结构
6.3.2 树或森林与二叉树的转换
6.3.3 树和森林的遍历
6.4 小结
习题
第7章 图
7.1 图的定义及有关术语
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.4 最小生成树
7.4.1 普里姆算法
7.4.2 克鲁斯卡尔算法
7.5 有向无环图及其应用
7.5.1 拓扑排序
7.5.2 关键路径
7.6 最短路径
7.6.1 单源最短路径
7.6.2 每一对顶点之间的最短路径
7.7 图的应用实例
7.8 小结
习题
第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 哈希查找的实现
8.5 小结
习题
第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.5 归并排序
9.6 基数排序
9.7 多关键字排序
9.8 小结
习题
参考文献