本书系统地介绍了各种类型的数据结构和查找、排序的各种方法。对于每一种类型的数据结构,都详细阐述了基本概念、各种不同的存储结构和方法,除给出了具体算法外,还进行了效率分析。另外,本书还介绍了递归程序设计方法和文件的组织方法。本书采用C语言作为算法描述语言。\r\n 本书概念清楚,内容丰富,深度适中,叙述简明。全书安排有大量例题帮助读者理解。每章生面配有适量习题。\r\n 本书既可作为大专院校计算机应用专业和非计算机专业的教科书,也可作为从事计算机应用的工程技术人员的自学参考书。
第1章 结论\r\n\r\n1.1 数据结构的基本概念\r\n1.2 数据类型和抽象数据类型\r\n1.3 C语言的数据类型\r\n1.4 用C语言描述算法注意事项\r\n1.5 算法设计目标和算法效率度量\r\n习题一 \r\n\r\n第2章 线性表\r\n\r\n2.1 线性表的逻辑结构及其基本操作\r\n2.2 线性表的顺序存储结构——顺序表\r\n2.2.1 顺序表\r\n2.2.2 顺序表上的基本操作\r\n2.2.3 顺序存储结构的特点\r\n2.3 线怀表的链式存储结构——链表\r\n2.3.1 单链表\r\n2.3.2 单链表上的基本操作\r\n2.3.3 双向链表\r\n2.3.4 循环链表\r\n2.3.5 链式存储结构的特点\r\n2.4 静态链表\r\n2.5 应用实例\r\n2.5.1 数据传递问题\r\n2.5.2 线性表合并问题\r\n2.5.3 约瑟夫问题\r\n习题二 \r\n\r\n第3章 堆栈与队列\r\n\r\n3.1 堆栈\r\n3.1.1 堆栈的定义及其操作\r\n3.1.2 堆栈的顺序存储结构\r\n3.1.3 堆栈的链式存储结构\r\n3.2 堆栈应用——表达式计算\r\n3.3 队列\r\n3.3.1 队列的定义及其操作\r\n3.3.2 队形的顺序存储结构\r\n3.3.3 队列的链式存储结构\r\n3.4 队列应用举例\r\n3.4.1 事件规划问题\r\n3.4.2 键盘输入循环缓冲区问题\r\n习题三 \r\n\r\n第4章 串\r\n\r\n4.1 串及其基本操作\r\n4.1.1 串的概念\r\n4.1.2 串的基本操作\r\n4.2 串的存储结构\r\n4.2.1 串的静态存储结构\r\n4.2.2 串的动态存储结构\r\n4.3 串基本操作的实现\r\n4.4 串的模式匹配算法\r\n4.4.1 Brute-Force算法\r\n4.4.2 KMP算法\r\n4.5 串应用——文本编辑软件\r\n习题四 \r\n\r\n第5章 数组\r\n\r\n5.1 数组的定义及其基本操作\r\n5.1.1 数组的定义\r\n5.1.2 数组的基本操作\r\n5.2 数组的存储结构\r\n5.3 特殊矩阵的压缩存储\r\n5.3.1 对称矩阵的压缩存储\r\n5.3.2 对角矩阵的压缩存储\r\n5.3.3 稀疏矩阵的三元级顺序表\r\n5.3.4 稀疏矩阵的三元组十字链表\r\n习题五 \r\n\r\n第6章 递归\r\n\r\n6.1 递归的概念\r\n6.2 用C语言实现递归\r\n6.3 递发算法的设计\r\n6.4 递归模拟\r\n6.4.1 递归的实现机制\r\n6.4.2 用非递归算法模拟递归算法\r\n习题六 \r\n\r\n第7章 树和二叉树\r\n\r\n7.1 树\r\n7.1.1 树的定义\r\n7.1.2 树的表示方法\r\n7.1.3 树的基本术语\r\n7.1.4 树的基本操作\r\n7.1.5 树的存储结构\r\n7.2 二叉树\r\n7.2.1 二叉树的基本概念\r\n7.2.2 二叉树的性质\r\n7.2.3 二叉树的存储结构\r\n7.2.4 二叉树的基本操作及其实现\r\n7.3 二叉树的遍历和线索二叉树\r\n7.3.1 二叉树的遍历\r\n7.3.2 线索二叉树\r\n7.4 二叉树的应用——哈夫曼树\r\n7.4.1 哈夫曼树的基本概念\r\n7.4.2 哈夫曼树在编码问题中的应用\r\n7.4.3 哈夫曼树在判定问题中的应用\r\n7.5 树、森林转换为二叉树\r\n7.5.1 树转换为二叉树\r\n7.5.2 森林转换为二叉树\r\n7.5.3 二叉树还原为树或森林\r\n7.6 树和森森的遍历\r\n7.6.1 树的遍历\r\n7.6.2 森林的遍历\r\n7.7 树的应用\r\n7.7.1 判定树\r\n7.7.2 集合的表示\r\n习题七\r\n\r\n第8章 图\r\n\r\n8.1 图的基本概念\r\n8.2 图的存储结构\r\n8.2.1 邻接矩阵\r\n8.2.2 邻接表\r\n8.2.3 十字链表\r\n8.2.4 邻接多重表\r\n8.3 图的遍历\r\n8.3.1 深度优先搜索的遍历方法\r\n8.3.2 广度优先搜索的遍历方法\r\n8.4 最小生成树\r\n8.4.1最小生成树的基本概念\r\n8.4.2 Prim算法构造最小生成树\r\n8.4.3 Kruskal算法构造最小生成树\r\n8.5 最短路径问题\r\n8.5.1 单源最短路径\r\n8.5.2 每对顶点之间的最短路径\r\n8.6.3 关键路径问题\r\n习题八 \r\n\r\n第9章 排序\r\n\r\n9.1 排序的基本概念\r\n9.2 插入排序\r\n9.2.1 直接插入排序\r\n9.2.2 希尔排序\r\n9.3 选择排序\r\n9.3.1 直接选择排序\r\n9.3.2 堆排序\r\n9.4 交换排序\r\n9.4.1 冒泡排序\r\n9.4.2 快速排序\r\n9.5 归并排序\r\n9.6 基数排序\r\n习题九 \r\n\r\n第10章 查找\r\n\r\n10.1 查找的基本概念\r\n10.2 顺序表的查找\r\n10.2.1 顺序查找\r\n10.2.2 二分查找\r\n10.2.3 分块查找\r\n10.3 树表的查找\r\n10.3.1 二叉排序树查找\r\n10.3.2 B树查找\r\n10.4 哈希表查找\r\n10.4.1 哈希表查找的基本概念\r\n10.4.2 构造哈希函数的方法\r\n10.4.3 哈希哈冲突的解决方法\r\n10.4.4 哈希表的查找\r\n习题十 \r\n\r\n第11章 文件\r\n\r\n11.1 文件概述\r\n11.1.1 文件演变过程及基本概念\r\n11.1.2 文件的存储介质\r\n11.1.3 文件的基本操作\r\n11.2 顺序文件\r\n11.3 索引文件\r\n11.4 ISAM文件\r\n11.5 VSAM文件\r\n11.6 散列文件\r\n习题十一 \r\n\r\n附录I C语言关键字及其用途\r\n附录II C语言运算符的优先级别和结合方向\r\n附录III C语言基本库函数\r\n参考文献