数据结构及算法
分類: 图书,计算机/网络,数据库,数据库理论,
作者: 彭波 编著
出 版 社: 机械工业出版社
出版时间: 2008-1-1字数:版次: 1页数: 320印刷时间: 2008/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787111231639包装: 平装编辑推荐
本书从抽象数据类型角度系统介绍数据结构基础理论知识及算法设计方法,它在在内容选取上符合计算机学科和信息类学科人才培养目标的要求及教学规律和认知规律,在组织编排上体现“先理论、后应用、理论与应用相结合”的原则,并兼顾学科的广度和深度,力求适用面广。全书共分11个章节,具体内容包括线性表、栈与队列、串、多维数组、广义表、树与二叉树等。该书可供各大专院校作为教材使用,也可供从事相关工作的人员作为参考用书使用。
内容简介
本书采用类C语言描述数据结构和操作算法,主要介绍了基本类型的数据结构及其算法设计方法。从抽象数据类型的角度讨论了几种常用的数据结构及其应用,如线性表、栈、队列、串、多维数组、广义表、树与二叉树、图等。给出了排序和查找的各种实现方法及其综合分析比较。为便于理解,本书对数据结构众多知识点的来龙去脉作了详细的解释和说明,每章后面都有算法设计举例并配有难度适宜的习题。
本书结构严谨、层次清楚、概念准确、深入浅出、描述清晰,可以作为高等院校计算机学科和信息类学科本科和专科教材,也可以作为其他理工专业的选修教材;对于从事计算机工程与应用工作的科技工作者,也是一本实用的参考教材。
目录
前言
第1章 绪论
1.1 数据结构的讨论范畴
1.2 数据结构的相关概念
1.2.1 基本概念
1.2.2 数据结构
1.2.3 数据类型
1.3 算法描述与算法分析
1.3.1 基本概念
1.3.2 算法描述
1.3.3 算法分析
1.4 习题
第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 基于时间的考虑
2.5 算法设计举例
2.6 习题
第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 算法设计举例
3.4 习题
第4章 串
4.1 串的逻辑表示
4.1.1 串的定义
4.1.2 串的抽象数据类型
4.2 串的顺序存储表示与基本操作
4.2.1 静态顺序串
4.2.2 动态顺序串
4.2.3 顺序串上基本操作的实现
4.3 串的链式存储表示与基本操作
4.3.1 链串
4.3.2 链串上基本操作的实现
4.4 串的模式匹配
4.4.1 BF算法
4.4.2 KMP算法
4.5 算法设计举例
4.6 习题
第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 稀疏矩阵
5.3.3 矩阵压缩存储上基本操作的实现
5.4 算法设计举例
5.5 习题
第6章 广义表
6.1 广义表的逻辑表示
6.1.1 广义表的定义
6.1.2 广义表的抽象数据类型
6.2 广义表的链式存储表示与基本操作
6.2.1 头尾链表
6.2.2 扩展线性链表
6.2.3 广义表链式存储上基本操作的实现
6.3 算法设计举例
6.4 习题
笫7章 树与二叉树
7.1 树的逻辑表示
7.1.1 树的定义
7.1.2 树的抽象数据类型
7.1.3 树的表示方法
7.1.4 树的基本术语
7.2 二叉树
7.2.1 二叉树与树的关系
7.2.2 二叉树的基本性质
7.2.3 二叉树的存储表示
7.2.4 遍历二叉树
7.2.5 线索二叉树
7.3 树
7.3.1 树的存储表示
7.3.2 树与二叉树的转换
7.3.3 树的遍历
7.4 哈夫曼树及其应用
7.4.1 哈夫曼树
7.4.2 哈夫曼编码
7.5 算法设计举例
7.6 习题
第8章 图
8.1 图的逻辑表示
8.1.1 图的定义
8.1.2 图的抽象数据类型
8.1.3 图的基本术语
8.2 图的存储表示与图的构造
8.2.1 邻接矩阵
8.2.2 邻接表
8.2.3 十字链表
8.2.4 邻接多重表
8.2.5 图的构造
8.3 遍历图
8.3.1 深度优先遍历
8.3.2 广度优先遍历
8.4 最小生成树
8.4.1 生成树
8.4.2 最小生成树
8.5 最短路径
8.5.1 单源最短路径
8.5.2 其他最短路径
8.6 拓扑排序
8.6.1 拓扑排序的定义
8.6.2 拓扑排序的操作
8.7 关键路径
8.7.1 关键路径的定义
8.7.2 关键路径的操作
8.8 算法设计举例
8.9 习题
第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 两路归并排序
9.5.2 分治法归并排序
9.6 基数排序
9.6.1 多关键字排序
9.6.2 链式基数排序
9.7 排序方法比较
9.8 算法设计举例
9.9 习题
第10章 查找
10.1 基本概念
10.2 静态查找
10.2.1 静态查找表的定义与表示
10.2.2 顺序查找
10.2.3 折半查找
10.2.4 分块查找
10.3 动态查找
10.3.1 动态查找表的定义与表示
10.3.2 二叉排序树
10.3.3 平衡二叉树
10.3.4 B-树
10.4 哈希查找
10.4.1 哈希表的定义与表示
10.4.2 哈希函数的构造方法
10.4.3 处理冲突的方法
10.4.4 哈希表上的基本操作
10.5 算法设计举例
10.6 习题
第11章 文件
11.1 基本概念
11.2 顺序文件
11.2.1 顺序文件的查找
11.2.2 顺序文件的修改
11.2.3 顺序文件的特点
11.3 索引文件
11.3.1 索引文件的分类
11.3.2 索引文件的存储
11.3.3 索引文件的操作
11.3.4 利用查找表建立多级索引
11.4 索引顺序文件
11.4.1 ISAM文件
11.4.2 VSAM文件
11.5 哈希文件
11.5.1 哈希文件的操作
11.5.2 哈希文件的特点
11.6 多关键字文件
11.6.1 多重表文件
11.6.2 倒排文件
11.7 文件综合举例
11.8 习题
参考文献