数据结构

出版时间:2002-3  出版社:清华大学出版社  作者:彭波  页数:257  

前言

  本书是按照美国电气电子工程师学会(Institute of Electrical and Electronic Engineers, IEEE)和计算机协会(Association for Computing Machinery, ACM)的《计算机学科教学计划2001》的要求编写的。  “数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序,还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程,是从事计算机科学及其应用的科技工作者必须掌握的重要课程。  本教材作为《21 世纪计算机专业大专系列教材》之一。教材在内容组织和编排上力求体现“先理论,后应用,理论与应用相结合”的原则,强调对理论知识的理解和运用。通过对本课程的学习,掌握各种数据结构的基本概念、逻辑特性和物理表示法,以及相应运算的算法;灵活运用各种数据结构解决实际应用问题,并且为学习后继专业课程打下良好的基础。  全书共分为9章。  第1章综述数据、数据结构、算法描述、算法分析,以及数据结构与其他课程之间的关系等。  第2章至第7章介绍了基本的数据结构,如线性表、栈、队列、串、数组、广义表、树、二叉树及图等,分别讨论了数据的逻辑结构和存储结构,以及相应运算的算法。  第8章和第9章为查找和排序,介绍了常用的几种查找方法和内部排序方法。  本教材有以下主要特点:  (1)基础理论知识的阐述由浅入深、通俗易懂、逻辑性强。在内容的组织与编排上,略去了一些理论上的推导和繁琐的数学证明。  (2)为了有助于学生加深对基础理论知识的理解,培养实际应用的能力,各章(除第1章外)都配有与该章内容相关的操作应用举例,且配有大量习题。  (3)教材中使用类 C 语言作为算法描述语言,且所有算法都可以在任何一种 C 语言的开发环境中实现。在随书的配套光盘中可以看到这些算法的 C 语言程序。  (4)附录中汇总了本教材各章中介绍的各类数据结构时用到的数据存储结构类型说明,供学生上机实验时参考使用。  本教材讲课时数为 60 学时左右,上机实验时数在 20 学时以上。教师可以根据学时数和学生的实际情况选讲操作应用举例中的例子。  本书可作为高等院校计算机专业大专学生数据结构课的教材,也可作为非计算机专业本科生的教材。  由于作者水平有限,在教材中难免有错误,恳请读者谅解。  本教材由李大友教授主编和审定,彭波副教授编写。在上机实现教材中所有算法的过程中得到了曾立、许振文等同志的帮助,在此表示感谢。

内容概要

本教材是《21世纪计算机专业大专系列教材》之一。全书共分9章,第1章综述数据、数据结构、算法描述、算法分析,以及数据结构与其他课程之间的关系等。第2章至第7章介绍了基本的数据结构,如线性表、栈、队列、串、数组、广义表、材、二叉树及图等,分别讨论了数据的逻辑结构和存储结构,以及相应运算的算法。第8章和第9章为查找和排序,介绍了常用的几种查找方法和内部排序方法。教材中使用类C语言作为算法描述语言,且所有算法都可以在任何一种C语言的开发环境中实现。在随书的配套光盘中可以看到这些算法的C语言程序。《数据结构》中所介绍的数据结构概念清楚,内容丰富。为了有助于学生加深对基础理论知识的理解,培养实际应用的能力,各章(除第1章外)都配有与该章内容相关的操作应用举例,且配有大量习题。《数据结构》可作为高等院校计算机专业大专数据结构课程的教材,也可作为非计算机专业本科生的教材。

书籍目录

第1章  绪论  1.1  数据结构概述  1.2  数据结构的发展概况  1.3  数据结构与其他课程的关系  1.4  基本概念 1.5  算法描述及分析  1.5.1  算法的重要特性  1.5.2  算法的描述方法  1.5.3  算法的设计要求  1.5.4  算法效率的度量  1.5.5  算法的空间需求 习题第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.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  块链存储结构 4.3  串操作应用举例 习题第5章  数组与广义表 5.1  数组的逻辑结构  5.1.1  数组的定义  5.1.2  数组的基本操作 5.2  数组的顺序存储结构 5.3  矩阵的压缩存储  5.3.1  特殊矩阵的压缩存储  5.3.2  稀疏矩阵的逻辑结构  5.3.3  稀疏矩阵的存储结构 5.4  广义表  5.4.1  广义表的逻辑结构  5.4.2  广义表的存储结构 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.3.1  遍历二叉树的操作定义  6.3.2  遍历二叉树的递归算法  6.3.3  遍历二叉树的非递归算法  6.3.4  建立二叉树的算法 6.4  二叉线索树  6.4.1  二叉线索树的引出  6.4.2  二叉线索树的定义  6.4.3  二叉线索树的存储结构  6.4.4  二叉线索树的操作 6.5  树和森林与二叉树的转换  6.5.1  树与二叉树的转换  6.5.2  森林与二叉树的转换  6.5.3  树和森林的遍历 6.6  赫夫曼树及其应用  6.6.1  基本概念  6.6.2  赫夫曼算法  6.6.3  赫夫曼编码  6.6.4  赫夫曼树和赫夫曼编码的存储表示  6.6.5  赫夫曼编码的算法  6.6.6  示例 6.7  树与二叉树操作应用举例 习题第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.3  图的遍历  7.3.1  深度优先搜索  7.3.2  广度优先搜索 7.4  最小生成树  7.4.1  生成树  7.4.2  最小生成树 7.5  最短路径  7.5.1  求某个源点到其他顶点的最短路径  7.5.2  求每一对顶点之间的最短路径 7.6  拓扑排序  7.6.1  AOV网  7.6.2  拓扑排序 7.7  关键路径  7.7.1  AOE网  7.7.2  关键路径的概念  7.7.3  关键路径的算法 7.8  图操作应用举例 习题第8章  查找 8.1  基本概念 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.3.3  二叉排序树  8.3.4  二叉平衡树  8.3.5  B树 8.4  散列表  8.4.1  散列表的概念  8.4.2  散列函数的构造方法  8.4.3  处理冲突的方法  8.4.4  散列表的查找和分析 8.5  查找操作应用举例 习题第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  排序操作应用举例 习题附录  数据存储结构综合参考文献

章节摘录

  第1章 绪论  自从世界上第一台电子计算机问世以来,计算机科学和计算机软件、硬件技术得到飞速地发展;计算机的应用领域也从最初的科学计算逐步发展到人类社会的各个领域。计算机加工处理的对象由简单的数值、字符发展到文字、图像、声音等各种复杂的带有不同类型及相互有不同关系的数据。为了编制“好”的程序,必须要分析程序处理的数据的特性及数据之间的关系,这就是“数据结构”这门学科形成和发展的背景。  1.1 数据结构概述  众所周知,计算机的程序是对数据进行加工处理。在大多数情况下,这些数据并不是无组织的,数据之间往往具有重要的结构关系,这就是数据结构的重要内容。那么,什么是数据结构呢?先不妨举例说明,然后给出明确定义。  例1.1 一个大学的学生健康情况管理。  表1.1 中的学生健康情况登记表就是一个数据结构。表中每个学生的情况为一个记录,它由姓名、学号、性别、年龄、班级和健康状况等6个数据项组成。计算机学生健康情况管理的主要功能包括:查询、浏览、插入、修改、删除和统计等。

图书封面

评论、评分、阅读与下载


    数据结构 PDF格式下载


用户评论 (总计1条)

 
 

  •   我的专业书,很好。
 

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

京ICP备13047387号-7