书籍详情
数据结构与算法(C语言版)
作者:徐凤生 主编
出版社:机械工业出版社
出版时间:2010-10-01
ISBN:9787111321224
定价:¥28.00
购买这本书可以去
内容简介
《数据结构与算法:C语言版》共10章,一方面,涵盖数据结构的基本概念,定义了线性表、栈、队列、串、数组、广义表、树和二叉树、图、查找、排序等各种结构的抽象数据类型,并给出了相应操作的实现算法;另一方面,采用C语言描述算法,并给出了各种算法的效率分析,以及这些结构在计算机科学及其他领域的应用。此外,每章后均配有典型例题、上机实验和习题。《数据结构与算法:C语言版》中的所有算法均在VC++环境下调试通过。《数据结构与算法:C语言版》在内容安排上,突出由浅入深、循序渐进、通俗易懂的特点,算法分析透彻,讲解清晰,便于学生自学。为了激发学生的学习兴趣,培养学生解决实际问题的能力,书中融入了一些典型的应用实例,如命题公式真值表的求解算法、出栈序列的求解算法等。《数据结构与算法:C语言版》可作为高等院校计算机及相关专业本科生的“数据结构”课程教材,也可供相关科技人员学习参考。
作者简介
暂缺《数据结构与算法(C语言版)》作者简介
目录
前言
教学建议
第1章 绪论
1.1 数据结构的研究对象
1.2 数据结构的发展概况
1.3 基本概念与术语
1.4 数据类型与抽象数据类型
1.4.1 数据类型
1.4.2 抽象数据类型
1.4.3 抽象数据类型的表示与实现
1.5 算法与算法分析
1.5.1 算法
1.5.2 算法设计的原则
1.5.3 算法效率的衡量方法和准则
1.5.4 算法的存储空间需求
1.6 典型例题
1.7 上机实验
习题
第2章 线性表
2.1 线性表的定义
2.1.1 线性表的概念
2.1.2 线性表的抽象数据类型定义
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 上机实验
习题
第3章 栈与队列
3.1 栈
3.1.1 栈的抽象数据类型定义
3.1.2 栈的表示与实现
3.2 栈的应用举例
3.2.1 数制转换
3.2.2 括号匹配的检验
3.2.3 表达式求值
3.2.4 求命题公式的真值
3.3 栈与递归实现
3.3.1 递归的定义
3.3.2 递归与栈的关系
3.3.3 递归的实现
3.3.4 用递归求所有出栈序列
3.3.5 递归的消除
3.4 队列
3.4.1 队列的抽象数据类型定义
3.4.2 队列的链式表示与实现
3.4.3 队列的顺序表示与实现——循环队列
3.4.4 队列的应用举例
3.5 典型例题
3.6 上机实验
习题
第4章 串
4.1 串的定义
4.2 串的表示与实现
4.2.1 串的顺序存储表示
4.2.2 串的链式存储表示
4.3 串的模式匹配
4.3.1 简单匹配算法
4.3.2 首尾匹配算法
4.3.3 KMP算法
4.4 典型例题
4.5 上机实验
习题
第5章 数组与广义表
5.1 数组的定义
5.2 数组的顺序存储
5.3 矩阵的压缩存储
5.3.1 特殊矩阵
5.3.2 稀疏矩阵
5.4 广义表
5.4.1 广义表的定义
5.4.2 广义表的存储结构
5.5 典型例题
5.6 上机实验
习题
第6章 树与二叉树
6.1 树的定义
6.1.1 树的概念与术语
6.1.2 树的逻辑表示方法
6.1.3 树的抽象数据类型定义
6.2 二叉树的定义
6.2.1 二叉树的概念
6.2.2 二叉树的重要性质
6.3 二叉树的存储结构
6.3.1 二叉树的顺序存储表示
6.3.2 二叉树的链式存储表示
6.4 二叉树的遍历
6.4.1 二叉树遍历的概念
6.4.2 二叉树遍历的递归算法
6.4.3 二叉树遍历的非递归算法
6.4.4 层次遍历算法
6.4.5 遍历算法的应用举例
6.5 二叉树的构造
6.6 线索二叉树
6.6.1 线索二叉树的定义
6.6.2 线索链表的建立
6.6.3 线索链表的遍历算法
6.7 树和森林的表示方法
6.7.1 双亲表示法
6.7.2 孩子链表表示法
6.7.3 孩子-兄弟链表表示法
6.7.4 树、森林和二叉树的对应关系
6.8 树和森林的遍历
6.8.1 树的遍历
6.8.2 森林的遍历
6.8.3 树遍历算法的应用
6.9 赫夫曼树与赫夫曼编码
6.9.1 赫夫曼树的定义
6.9.2 赫夫曼树的构造
6.9.3 赫夫曼编码
6.10 典型例题
6.11 上机实验
习题
第7章 图
7.1 图的定义与术语
7.1.1 图的相关术语
7.1.2 图的抽象数据类型定义
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.7 关键路径
7.8 典型例题
7.9 上机实验
习题
第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.3.5 键树
8.4 哈希表
8.4.1 哈希表的概念
8.4.2 哈希函数的构造方法
8.4.3 处理冲突的方法
8.4.4 哈希表的查找
8.4.5 哈希表的插入操作
8.4.6 哈希表的删除操作
8.5 典型例题
8.6 上机实验
习题
第9章 排序
9.1 概述
9.1.1 什么是排序
9.1.2 内部排序和外部排序
9.1.3 内部排序的方法
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 二路插入排序
9.2.4 表插入排序
9.2.5 希尔排序
9.3 交换排序
9.3.1 起泡排序
9.3.2 快速排序
9.4 选择排序
9.4.1 简单选择排序
9.4.2 堆排序
9.5 归并排序
9.6 基数排序
9.6.1 多关键字排序
9.6.2 链式基数排序
9.7 各种排序方法的综合比较
9.8 外排序简介
9.8.1 外存信息的存取
9.8.2 外排序的基本方法
9.9 典型例题
9.10 上机实验
习题
第10章 文件
10.1 文件的基本概念
10.1.1 什么是文件
10.1.2 文件的逻辑结构及操作
10.1.3 文件的存储结构
10.2 顺序文件
10.3 索引文件
10.3.1 ISAM文件
10.3.2 VSAM文件
10.4 哈希文件
10.5 多关键字文件
10.5.1 多重表文件
10.5.2 倒排文件
10.5.3 倒排文件的应用
10.6 典型例题
10.7 上机实验
习题
参考文献
教学建议
第1章 绪论
1.1 数据结构的研究对象
1.2 数据结构的发展概况
1.3 基本概念与术语
1.4 数据类型与抽象数据类型
1.4.1 数据类型
1.4.2 抽象数据类型
1.4.3 抽象数据类型的表示与实现
1.5 算法与算法分析
1.5.1 算法
1.5.2 算法设计的原则
1.5.3 算法效率的衡量方法和准则
1.5.4 算法的存储空间需求
1.6 典型例题
1.7 上机实验
习题
第2章 线性表
2.1 线性表的定义
2.1.1 线性表的概念
2.1.2 线性表的抽象数据类型定义
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 上机实验
习题
第3章 栈与队列
3.1 栈
3.1.1 栈的抽象数据类型定义
3.1.2 栈的表示与实现
3.2 栈的应用举例
3.2.1 数制转换
3.2.2 括号匹配的检验
3.2.3 表达式求值
3.2.4 求命题公式的真值
3.3 栈与递归实现
3.3.1 递归的定义
3.3.2 递归与栈的关系
3.3.3 递归的实现
3.3.4 用递归求所有出栈序列
3.3.5 递归的消除
3.4 队列
3.4.1 队列的抽象数据类型定义
3.4.2 队列的链式表示与实现
3.4.3 队列的顺序表示与实现——循环队列
3.4.4 队列的应用举例
3.5 典型例题
3.6 上机实验
习题
第4章 串
4.1 串的定义
4.2 串的表示与实现
4.2.1 串的顺序存储表示
4.2.2 串的链式存储表示
4.3 串的模式匹配
4.3.1 简单匹配算法
4.3.2 首尾匹配算法
4.3.3 KMP算法
4.4 典型例题
4.5 上机实验
习题
第5章 数组与广义表
5.1 数组的定义
5.2 数组的顺序存储
5.3 矩阵的压缩存储
5.3.1 特殊矩阵
5.3.2 稀疏矩阵
5.4 广义表
5.4.1 广义表的定义
5.4.2 广义表的存储结构
5.5 典型例题
5.6 上机实验
习题
第6章 树与二叉树
6.1 树的定义
6.1.1 树的概念与术语
6.1.2 树的逻辑表示方法
6.1.3 树的抽象数据类型定义
6.2 二叉树的定义
6.2.1 二叉树的概念
6.2.2 二叉树的重要性质
6.3 二叉树的存储结构
6.3.1 二叉树的顺序存储表示
6.3.2 二叉树的链式存储表示
6.4 二叉树的遍历
6.4.1 二叉树遍历的概念
6.4.2 二叉树遍历的递归算法
6.4.3 二叉树遍历的非递归算法
6.4.4 层次遍历算法
6.4.5 遍历算法的应用举例
6.5 二叉树的构造
6.6 线索二叉树
6.6.1 线索二叉树的定义
6.6.2 线索链表的建立
6.6.3 线索链表的遍历算法
6.7 树和森林的表示方法
6.7.1 双亲表示法
6.7.2 孩子链表表示法
6.7.3 孩子-兄弟链表表示法
6.7.4 树、森林和二叉树的对应关系
6.8 树和森林的遍历
6.8.1 树的遍历
6.8.2 森林的遍历
6.8.3 树遍历算法的应用
6.9 赫夫曼树与赫夫曼编码
6.9.1 赫夫曼树的定义
6.9.2 赫夫曼树的构造
6.9.3 赫夫曼编码
6.10 典型例题
6.11 上机实验
习题
第7章 图
7.1 图的定义与术语
7.1.1 图的相关术语
7.1.2 图的抽象数据类型定义
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.7 关键路径
7.8 典型例题
7.9 上机实验
习题
第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.3.5 键树
8.4 哈希表
8.4.1 哈希表的概念
8.4.2 哈希函数的构造方法
8.4.3 处理冲突的方法
8.4.4 哈希表的查找
8.4.5 哈希表的插入操作
8.4.6 哈希表的删除操作
8.5 典型例题
8.6 上机实验
习题
第9章 排序
9.1 概述
9.1.1 什么是排序
9.1.2 内部排序和外部排序
9.1.3 内部排序的方法
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 二路插入排序
9.2.4 表插入排序
9.2.5 希尔排序
9.3 交换排序
9.3.1 起泡排序
9.3.2 快速排序
9.4 选择排序
9.4.1 简单选择排序
9.4.2 堆排序
9.5 归并排序
9.6 基数排序
9.6.1 多关键字排序
9.6.2 链式基数排序
9.7 各种排序方法的综合比较
9.8 外排序简介
9.8.1 外存信息的存取
9.8.2 外排序的基本方法
9.9 典型例题
9.10 上机实验
习题
第10章 文件
10.1 文件的基本概念
10.1.1 什么是文件
10.1.2 文件的逻辑结构及操作
10.1.3 文件的存储结构
10.2 顺序文件
10.3 索引文件
10.3.1 ISAM文件
10.3.2 VSAM文件
10.4 哈希文件
10.5 多关键字文件
10.5.1 多重表文件
10.5.2 倒排文件
10.5.3 倒排文件的应用
10.6 典型例题
10.7 上机实验
习题
参考文献
猜您喜欢