系统地介绍了各种常用的数据结构以及排序、查找的各种算法。阐述了各种数据结构的逻辑关系、存储表示及运算操作。全书采用C语言作为数据结构和算法的描述语言,并对C语言描述的算法作了详细的注解和简要的性能分析。《数据结构》既注重原理又注重实践,并配有大量的图表、例题和习题,内容丰富,观点新颖,概念清楚,逻辑推理严谨,通俗易懂,既便于教学,又适合于自学。《数据结构》可作为计算机及其应用专业独立本科段自考教材,亦可作为全日制高等院校计算机类或信息类相关专业的本科或专科教材,还可供从事计算机工程与应用工作的科技人员参考。
目录
- 数据结构
- 第1章 概论
- 1.1 基本概念和术语
- 1.2 学习数据结构的意义
- 1.3 算法的描述和分析
- 习题
- 第2章 线性表
- 2.1 线性表的逻辑结构
- 2.2 线性表的顺序存储结构
- 2.2.1 顺序表
- 2.2.2 顺序表上实现的基本运算
- 2.3 线性表的链式存储结构
- 2.3.1 单链表
- 2.3.2 循环链表
- 2.3.3 双链表
- 2.4 顺序表和链表的比较
- 习题二
- 第3章 栈和队列
- 3.1 栈
- 3.1.1 栈的定义及基本运算
- 3.1.2 顺序栈
- 3.1.3 链栈
- 3.2 队列
- 3.2.1 队列的定义及基本运算
- 3.2.2 顺序队列
- 3.2.3 链队列
- 3.3 栈和队列的应用实例
- 习题三
- 第4章 串
- 4.1 串及其运算
- 4.1.1 串的基本概念
- 4.1.2 串的基本运算
- 4.2 串的存储结构
- 4.2.1 串的顺序存储
- 4.2.2 串的链式存储
- 4.2.3 串运算的实现
- 习题四
- 第5章 多维数组和广义表
- 5.1 多维数组
- 5.2 矩阵的压缩存储
- 5.2.1 特殊矩阵
- 5.2.2 稀疏矩阵
- 5.3 1广义表的概念
- 习题五
- 第6章 树
- 6.1 树的概念
- 6.2 二叉树
- 6.2.1 叉树的定义
- 6.2.2 二叉树的性质
- 6.2.3 叉树的存储结构
- 6.3 二叉树的遍历
- 6.4 线索二叉树
- 6.5 树和森林
- 6.5.1 树、森林与二叉树的转换
- 6.5.2 树的存储结构
- 6.5.3 树和森林的遍历
- 6.6 哈夫曼树及其应用
- 6.6.1 最优二叉树(哈夫曼树)
- 6.6.2 合夫曼编码
- 习题六
- 第7章 图
- 7.1 图的概念
- 7.2 图的存储结构
- 7.2.1 邻接矩阵表示法
- 7.2.2 邻接表表示法
- 7.3 图的遍历
- 7.3.1 深度优先遍历
- 7.3.2 广度优先遍历
- 7.4 生成树和最小生成树
- 7.4.1 生成树
- 7.4.2 最小生成树
- 7.5 最短路径
- 7.6 拓扑排序
- 习题七
- 第8章 排序
- 8.1 基本概念
- 8.2 插入排序
- 8.2.1 直接插入排序
- 8.2.2 希尔排序
- 8.3 交换排序
- 8.3.1 冒泡排序
- 8.3.2 快速排序
- 8.4 选择排序
- 8.4.1 直接选择排序
- 8.4.2 堆排序
- 8.5 归并排序
- 8.6 分配排序
- 8.6.1 箱排序
- 8.6.2 基数排序
- 8.7 各种内部排序方法的比较和选择
- 习题八
- 第9章 查找
- 9.1 基本概念
- 9.2 线性表的查找
- 9.2.1 顺序查找
- 9.2.2 二分查找
- 9.2.3 分块查找
- 9.3 树上的查找
- 9.3.1 二叉排序树
- 9.3.2 B-树
- 9.4 散列技术
- 9.4.1 散列表的概念
- 9.4.2 散列函数的构造方法
- 9.4.3 处理冲突的方法
- 9.4.4 散列表上的运算
- 习题九
- 第10章 文件
- 10.1 文件的基本概念
- 10.2 顺序文件
- 10.3 索引文件
- 10.4 索引顺序文件
- 10.4.1 ISAM文件
- 10.4.2 VSAM文件
- 10.5 散列文件
- 10.6 多关键字文件
- 10.6.1 多重表文件
- 10.6.2 倒排文件
- 习题十
- 参考书目
- 数据结构自学考试大纲
- 出版前言
- 一、课程性质及其设置目的
- 二、课程内容与考核目标
- 第1章 概论
- 第2章 线性表
- 第3章 栈和队列
- 第4章 串
- 第5章 多维数组和广义表
- 第6章 树
- 第7章 图
- 第8章 排序
- 第9章 查找
- 第10章 文件
- 实践环节
- 三、有关说明和实施要求
- 附录题型举例
- 后记