数据结构及应用算法教程

出版时间:2011-5  出版社:清华大学出版社  作者:严蔚敏,陈文博 编著  页数:391  
Tag标签:无  

内容概要

  本书从数据类型的角度,分别讨论了四大类型的数据结构的逻辑特性、存储表示及其应用。此外,还专辟一章,以若干实例阐述以抽象数据类型为中心的程序设计方法。书中每一章后都配有适量的习题,以供读者复习提高之用。第1~9章还专门设有“解题指导与示例”一节内容,不仅给出答案,对大部分题目提供了详尽的解答注释;其中的一些算法题还给出了多种解法。书中主要算法和最后一章的实例中的全部程序代码均收录在与本书配套的光盘之中。
  本书内容丰富,概念阐述细致清楚,可作为高等院校计算机类专业和信息类相关专业“数据结构”或“软件基础”课程的本科教材。另外,对于准备参加计算机类研究生专业课统考的考生,本书也可作为应试的解题指导。

书籍目录

第1章 绪论
1.1 数据结构讨论的范畴
1.2 与数据结构相关的概念
1.2.1 基本概念和术语
1.2.2 数据结构(data structures)
1.2.3 数据类型和抽象数据类型
1.3 算法及其描述和分析
1.3.1 算法
1.3.2 算法的描述
1.3.3 算法效率的衡量方法和准则
1.3.4 算法的存储空间需求
解题指导与示例
习题
第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.2 简单排序方法
3.2.1 插入排序
3.2.2 起泡排序
3.3 先进排序方法
3.3.1 快速排序
3.3.2 归并排序
3.3.3 堆排序
3.4 基数排序
3.5 各种排序方法的综合比较
解题指导与示例
习题
第4章 栈和队列
4.1 栈
4.1.1 栈的结构特点和操作
4.1.2 栈的表示和操作的实现
4.2 栈的应用举例
4.3 队列
4.3.1 队列的结构特点和操作
4.3.2 队列的表示和操作的实现
4.4 队列应用举例
解题指导与示例
习题
第5章 串和数组
5.1 串的定义和操作
5.2 串的表示和实现
5.2.1 定长顺序存储表示
5.2.2 堆分配存储表示
5.2.3 块链存储表示
5.3 正文模式匹配
5.4 正文编辑--串操作应用举例
5.5 数组
5.5.1 数组的定义和操作
5.5.2 数组的顺序表示和实现
5.5.3 数组的应用
5.6 矩阵的压缩存储
5.6.1 特殊形状矩阵的存储表示
5.6.2 随机稀疏矩阵的存储压缩
解题指导与示例
习题
第6章 二叉树和树
6.1 二叉树
6.1.1 二叉树的定义和基本术语
6.1.2 二叉树的几个基本性质
6.1.3 二叉树的存储结构
6.2 二叉树遍历
6.2.1 问题的提出
6.2.2 遍历算法描述
6.2.3 二叉树遍历应用举例
6.2.4 线索二叉树
6.3 树和森林
6.3.1 树和森林的定义
6.3.2 树和森林的存储结构
6.3.3 树和森林的遍历
6.4 树的应用
6.4.1 堆排序的实现
6.4.2 二叉排序树
6.4.3 赫夫曼树及其应用
解题指导与示例
习题
第7章 图和广义表
7.1 图的定义和术语
7.2 图的存储结构
7.2.1 图的数组(邻接矩阵)存储表示
7.2.2 图的邻接表存储表示
7.3 图的遍历
7.3.1 深度优先搜索遍历图
7.3.2 广度优先搜索遍历图
7.4 连通网的最小生成树
7.5 单源最短路径
7.6 拓扑排序
7.7 关键路径
7.8 广义表
7.8.1 广义表的定义
7.8.2 广义表的存储结构
7.8.3 广义表的遍历
解题指导与示例
习题
第8章 查找表
8.1 静态查找表
8.1.1 顺序查找
8.1.2 折半查找
8.1.3 分块查找
8.2 动态查找表
8.2.1 二叉查找树
8.2.2 键树
8.3 哈希表及其查找
8.3.1 什么是哈希表
8.3.2 构造哈希函数的几种方法
8.3.3 处理冲突的方法和建表示例
8.3.4 哈希表的查找及其性能分析
8.3.5 哈希表的应用举例
解题指导与示例
习题
第9章 文件
9.1 基本概念
9.1.1 外存储器简介
9.1.2 有关文件的基本概念
9.2 顺序文件
9.2.1 存储在顺序存储器上的文件
9.2.2 存储在直接存储器上的文件
9.3 索引文件
9.3.1 B树
9.3.2 B?+ 树和索引顺序文件
9.4 哈希文件
9.4.1 文件组织方式
9.4.2 文件的操作
9.5 多关键码文件
9.5.1 倒排文件
9.5.2 索引链接文件
解题指导与示例
习题
第10章 数据结构程序设计示例
10.1 抽象数据类型
10.2 从问题到程序的求解过程
10.2.1 建立数据结构模型设计抽象数据类型
10.2.2 算法设计
10.2.3 实现抽象数据类型
10.2.4 编制程序代码并进行静态测试和动态调试
10.3 程序的规范说明
10.4 应用示例分析
10.4.1 含并、交和差运算的集合类型
10.4.2 最佳任务分配方案求解
10.4.3 排队问题的系统仿真
10.4.4 十进制四则运算计算器
10.4.5 自行车零部件库的库存模型
10.4.6 教务课程计划的辅助制定
10.4.7 一个小型全文检索模型
10.4.8 汽车牌照的快速查找
实习题
实习一 链表的维护与文件形式的保存
实习二 用回溯法求解“稳定婚配”问题
实习三 以队列实现的仿真技术预测理发馆的经营状况
实习四 利用树形结构的搜索算法模拟因特网域名的查询
实习五 管道铺设施工的最佳方案选择
实习六 使用哈希表技术判别两个源程序的相似性
附录 算法一览表
参考文献

章节摘录

版权页:插图:1.2.3数据类型和抽象数据类型与数据结构密切相关的是定义在数据结构之上的一组操作,操作的种类和数目不同,即使逻辑结构相同,这个数据结构能起的作用也不同。一个数据结构加上定义在这个数据结构上的一组操作,即构成一个抽象数据类型的定义。抽象数据类型的概念其实质和程序设计语言中的数据类型概念相同。在用程序设计语言编写的程序中,必须对程序中出现的每个变量、常量或表达式明确说明它们所属的数据类型。类型明显或隐含地规定了在程序执行期间,变量或表达式所有可能取值的范围,以及在这些值上允许进行的操作。即数据类型是一个值的集合和定义在此集合上的一组操作的总称。例如,C语言中的整型变量,其值集为某个区间上的整数(区间大小依赖于不同的机器和软件系统),定义在其上的操作为加、减、乘、除和取模等算术运算。各种高级程序设计语言中都拥有的“整数”类型即为一个抽象数据类型,尽管它们在不同处理器上实现的方法可以不同,但由于它们的数学特性相同,在用户看来都是相同的。因此“抽象”的意义在于强调数据类型的数学特性。另一方面,抽象数据类型的范畴更广,它不再局限于现有程序设计语言中已实现的数据类型(通常称为固有数据类型),还包括用户在设计软件系统时自己定义的数据类型。为了提高软件的复用率,在近代程序设计方法学中指出,一个软件系统的框架应建立在数据之上,而不是建立在操作之上(后者是传统的软件设计方法所为)。

编辑推荐

《数据结构及应用算法教程(修订版)》:概念讲述兼顾精准和通俗,满足学习和应试备考的广大读者群需求。强调基本内容与知识运用的衔接,通过丰富的解题实例巩固学习效果。以静态跟踪的详尽图示剖析算法执行的过程,透视数据结构的运作机理。提供常见题型的解题步骤和思考的脉络,利于培育举一反三的能力。披露数据结构算法的写作秘密,评述并比较各种解法的优势及特色。汇集了最常用数据结构应用算法实例的源代码,可作为开发的借鉴资源。

图书封面

图书标签Tags

评论、评分、阅读与下载


    数据结构及应用算法教程 PDF格式下载


用户评论 (总计15条)

 
 

  •   老师叫我们买的,教材书籍
  •   质量没的说,还很便宜,好!
  •   看了下,不错, 推荐购买,顶
  •   考试用书,书本身不错,质量可以
  •   该书写的不错,读后很有收获!可读性很好,并且是用c语言写的。
  •   经典,给了5分,废话不用说了,买酒对了
  •   详细介绍了以C++语言实现各种常用的数据结构
  •   内容很好,还能免运费。
  •   看这本书要有一定的基础,比如散离数学,C语言等知识
  •   书可以,但是为什么没有给我发配套关盘?
  •   没有想象中的那么好,但内容上还是不错的!
  •   我其实有点后悔,因为这本书跟我的教科书一样,没有怎么用。
  •   书是那本书,但是少了上面说的那张光盘!
  •   书很好,邮递也很快,下次继续来买
  •   这本书不错哦,代码齐全,比较容易理解!
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7