数据结构——基于C语言的描述|文末赠书
“数据结构”课程是计算机、电子信息类及相关专业的专业基础。它在整个课程体系中处于承上启下的核心地位:一方面扩展和深化在离散数学、程序设计语言等课程学到的基本技术和方法;另一方面为进一步学习操作系统、编译原理、数据库等专业知识奠定坚实的理论与实践基础。本课程在教给学生数据结构设计和算法设计的同时,培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题、解决问题和总结问题的能力,更重要的是培养专业兴趣,树立创新意识。本书在内容选取上符合人才培养目标的要求及教学规律和认知规律,在组织编排上体现“先理论、后应用、理论与应用相结合”的原则,并兼顾学科的广度和深度,力求适用面广泛。
彭波,教授,博士生导师,主讲《数据结构》《算法设计与分析》《程序设计》《多媒体技术》等课程,主编《数据结构》(十一五国家级规划教材)、《数据结构及算法》、《多媒体技术教程》、《Java编程技术全接触》、《程序设计》等教材。长期从事计算机科学与技术方面的教学及科研工作,主持和参加多项国家科技支撑计划课题,曾获得全国宝钢教育基金奖优秀教师、中国农业大学杰出教师、中国农业大学优秀教育工作者、中国农业大学教学成果奖等。
本书系统地介绍数据结构基础理论知识及算法设计,第1~7章从抽象数据类型的角度讨论各种基本类型的数据结构及其应用,主要包括线性表、栈和队列、串、数组和广义表、树和二叉树及图;第8章和第9章主要讨论查找和排序的各种实现方法及其综合比较;第10章介绍不同类型文件的基本操作方法;第11章介绍数据结构课程实验的目的、步骤及内容;附录给出全书习题的部分参考答案。全书采用类C语言作为数据结构和算法的描述语言,随书配备电子教案,以及第11章实验的源代码。
本书在内容选取上符合人才培养目标的要求及教学规律和认知规律,在组织编排上体现“先理论、后应用、理论与应用相结合”的原则,并兼顾学科的广度和深度,力求适用面广。本书具有结构严谨、层次清楚、概念准确、深入浅出、描述清晰等特点。
本书可作为计算机类专业和信息类相关专业的本科或专科教材,也可供从事计算机工程与应用工作的科技工作者参考。
第1章 绪论
1.1 数据结构的范畴
1.1.1 计算机处理问题的分类
1.1.2 非数值性问题的求解
1.2 数据结构发展的概况
1.3 数据结构相关的概念
1.3.1 数据的概念
1.3.2 结构的概念
1.3.3 类型的概念
1.4 算法描述与算法分析
1.4.1 算法的概念
1.4.2 算法描述
1.4.3 算法分析
习题
第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 基于时间的比较
习题
第3章 栈和队列
3.1 栈
3.1.1 栈的类型定义
3.1.2 栈的存储表示及操作实现
3.1.3 栈与递归问题
3.2 队列
3.2.1 队列的类型定义
3.2.2 队列的存储表示及操作实现
习题
第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 简单的模式匹配方法—BF算法
4.3.2 改进的模式匹配方法—KMP算法
习题
第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 广义表的链式表示及操作实现
习题
第6章 树和二叉树
6.1 树
6.1.1 树的类型定义
6.1.2 树的存储表示及操作实现
6.2 二叉树
6.2.1 二叉树的类型定义
6.2.2 二叉树的重要性质
6.2.3 二叉树的存储表示及操作实现
6.2.4 线索二叉树
6.3 树和森林与二叉树的转换
6.3.1 树与二叉树的转换
6.3.2 森林与二叉树的转换
6.4 哈夫曼树及其应用
6.4.1 哈夫曼树
6.4.2 哈夫曼编码
习题
第7章 图
7.1 图的类型定义
7.1.1 图的定义
7.1.2 图的抽象数据类型
7.1.3 图的遍历
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.5.1 单源最短路径
7.5.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.3.3 B-树、B+树和键树
8.4 哈希表
8.4.1 哈希表的定义
8.4.2 哈希函数的构造
8.4.3 处理冲突的方法
8.4.4 哈希表上的查找
习题
第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 2-路归并排序
9.5.2 归并排序
9.6 基数排序
9.6.1 多关键字排序
9.6.2 链式基数排序
9.7 排序方法比较
习题
第10章 文件
10.1 文件的基本概念
10.2 顺序文件
10.2.1 顺序文件的查找
10.2.2 顺序文件的修改
10.2.3 顺序文件的特点
10.3 索引文件
10.3.1 索引文件的分类
10.3.2 索引文件的存储
10.3.3 索引文件的操作
10.3.4 利用查找表建立多级索引
10.4 索引顺序文件
10.4.1 ISAM 文件
10.4.2 VSAM 文件
10.5 哈希文件
10.5.1 哈希文件的操作
10.5.2 哈希文件的特点
10.6 多关键字文件
10.6.1 多重表文件
10.6.2 倒排文件
10.7 文件综合举例
第11章 课程实验
11.1 实验概述
11.1.1 教学目的
11.1.2 实验步骤
11.2 实验内容
11.2.1 线性表
11.2.2 栈和队列
11.2.3 串
11.2.4 数组和广义表
11.2.5 树和二叉树
11.2.6 图
11.2.7 查找
11.2.8 排序
附录 习题参考答案
(1)编写目标:定位准确、结构合理、覆盖面广,符合教学规律
(2)内容知识:概念准确、深入浅出、描述清晰,便于学生学习
(3)实验思考:层次分明、紧扣内容、拓宽思路,加深知识理解
(4)电子教案:立体展示、形象生动、图文并茂,辅助教师教学
点击下方封面观看《数据结构——基于C语言的描述》京东详情页
本书提供配套教学课件,教学质量标准(教学大纲)等资源,可到清华大学出版社官方网站本书页面下载。
您若是教师,可按以下方式申请图书
(3)申请人须是普通高校教师并担任所申请样书对应课程,申请表中需要上传相近课程的教学大纲证明身份。
您若不是教师,可按以下方式图书抽奖
注:图书申请长期有效。
AI学习相伴,你「在看」吗↓