目录 第1章 绪论 1.1 数据结构的基本概念 1.2 数据类型和抽象数据类型 1.3 C语言的数据类型 1.4 用C语言描述算法的注意事项 1.5 算法设计目标和算法效率度量 习题一 第2章 线性表 2.1 线性表的逻辑结构及其基本操作 2.2 线性表的顺序存储结构——顺序表 2.2.1 顺序表 2.2.2 顺序表上的基本操作 2.2.3 顺序存储结构的特点 2.3 线性表的链式存储结构——链表 2.3.1 单链表 2.3.2 单链表中的基本操作 2.3.3 双向链表 2.3.4 循环单链表 2.3.5 链式存储结构的特点 2.4 静态链表 2.5 应用实例 2.5.1 数据传递问题 2.5.2 有序线性表合并问题 2.5.3 约瑟夫环问题 习题二 第3章 堆栈与队列 3.1 堆栈 3.1.1 堆栈的定义及其操作 3.1.2 堆栈的顺序存储结构 3.1.3 堆栈的链式存储结构 3.2 堆栈应用——表达式计算 3.3 队列 3.3.1 队列的定义及其操作 3.3.2 队列的顺序存储结构 3.3.3 队列的链式存储结构 3.4 队列应用举例 3.4.1 事件规划问题 3.4.2 键盘输入循环缓冲区问题 习题三 第4章 串 4.1 串及其基本操作 4.1.1 串的概念 4.1.2 串的基本操作 4.2 串的存储结构 4.2.1 串的静态存储结构 4.2.2 串的动态存储结构 4.3 串基本操作的实现 4.4 串的模式匹配算法 4.4.1 Brute-Force算法 4.4.2 KMP算法 4.5 串应用——文本编辑软件 习题四 第5章 数组 5.1 数组的定义及其基本操作 5.1.1 数组的定义 5.1.2 数组的基本操作 5.2 数组的存储结构 5.3 特殊矩阵的压缩存储 5.3.1 对称矩阵的压缩存储 5.3.2 对角矩阵的压缩存储 5.4 稀疏矩阵的压缩存储 5.4.1 稀疏矩阵的三元组顺序表 5.4.2 稀疏矩阵的三元组十字链表 习题五 第6章 递归 6.1 递归的概念 6.2 用C语言实现递归 6.3 递归算法的设计 6.4 递归模拟 6.4.1 递归的实现机制 6.4.2 用非递归算法模拟递归算法 习题六 第7章 树和二叉树 7.1 树 7.1.1 树的定义 7.1.2 树的表示方法 7.1.3 树的基本术语 7.1.4 树的基本操作 7.1.5 树的存储结构 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.5 二叉树的应用——哈夫曼树 7.5.1 哈夫曼树的基本概念 7.5.2 哈夫曼树在编码问题中的应用 7.5.3 哈夫曼树在判定问题中的应用 7.6 树、森林与二叉树的转换 7.6.1 树转换为二叉树 7.6.2 森林转换为二叉树 7.6.3 二叉树还原为树或森林 7.7 树和森林的遍历 7.7.1 树的遍历 7.7.2 森林的遍历 7.8 树的应用 7.8.1 判定树 7.8.2 集合的表示 习题七 第8章 图 8.1 图的基本概念 8.2 图的存储结构 8.2.1 邻接矩阵 8.2.2 邻接表 8.2.3 十字链表 8.2.4 邻接多重表 8.3 图的遍历 8.3.1 深度优先搜索的遍历方法 8.3.2 广度优先搜索的遍历方法 8.4 最小生成树 8.4.1 最小生成树的基本概念 8.4.2 prim算法构造最小生成树 8.4.3 Kruskal 算法构造最小生成树 8.5 最短路径问题 8.5.1 单源最短路径 8.5.2 每对顶点之间的最短路径 8.6 关键路径问题 习题八 第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.6基数排序 习题九 第10章 查找 10.1 基本概念 10.2 顺序表的静态查找 10.2.1 顺序查找 10.2.2 二分查找 10.2.3 分块查找 10.3 树表的动态查找 10.3.1 二叉排序树查找 10.3.2 B树查找 10.4 哈希表的查找 10.4.1 基本概念 10.4.2 构造哈希函数的方法 10.4.3 哈希冲突的解决方法 10.4.4 哈希表的查找 10.4.5 哈希算法举例 习题十 第11章 文件 11.1 文件概述 11.1.1 文件的演变过程及基本概念 11.1.2 文件的存储介质 11.1.3 文件的基本操作 11.2 顺序文件 11.3 索引文件 11.4 ISAM文件 11.5 VSAM文件 11.6 散列文件 习题十一 附录1 上机实验实例 附录1.1 有序线性链表的删除 附录1.2 中心对称字符串判断 附录1.3 计算机模拟迷宫问题 附录2 部分习题解答 参考文献