• 数据结构 数据库 叶飞跃 等 主编
  • 数据结构 数据库 叶飞跃 等 主编
  • 数据结构 数据库 叶飞跃 等 主编
  • 数据结构 数据库 叶飞跃 等 主编
  • 数据结构 数据库 叶飞跃 等 主编
21年品牌 40万+商家 超1.5亿件商品

数据结构 数据库 叶飞跃 等 主编

新华书店全新正版书籍 支持7天无理由

47.9 6.9折 69 全新

仅1件

北京丰台
认证卖家担保交易快速发货售后保障

作者叶飞跃 等 主编

出版社科学出版社

ISBN9787030533777

出版时间2017-06

版次1

装帧平装

开本16

页数368页

字数545千字

定价69元

货号xhwx_1201531750

上书时间2024-06-18

智胜图书专营店

六年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
正版特价新书
商品描述
目录:

丛书序
前言
章绪论1
1.1引例1
1.2基本概念3
1.2.1数据、数据元素、数据项和数据对象3
1.2.2数据结构4
1.2.3数据类型和抽象数据类型6
1.3算法和算法分析9
1.3.1算法的定义及算法描述9
1.3.2算法评价10
1.3.3算法的时间复杂度12
1.3.4算法的空间复杂度16
小结17
题18
上机实验题20
第2章c/c++语言知识21
2.1指针21
2.1.1指针变量21
2.1.2指针运算22
2.1.3数组与指针27
2.2结构体31
2.2.1结构体的定义31
2.2.2结构体数组33
2.2.3结构体指针34
2.3共用体37
2.4c++运算符39
2.4.1动态申请与释放内存运算符39
2.4.2引用41
2.5c程序分析42
小结44
题44
上机实验题47
第3章线表48
3.1引例48
3.2线表的概念及运算49
3.2.1线表的定义49
3.2.2线表的抽象数据类型定义49
3.3线表的顺序表示和实现50
3.3.1线表的顺序存储表示50
3.3.2顺序表基本运算的实现51
3.4引例中读书兴趣小组活动管理的顺序表解决56
3.5线表的链式表示和实现61
3.5.1单链表的定义和表示62
3.5.2单链表基本运算的实现62
3.5.3顺序表和链表的比较70
3.6引例中读书兴趣小组活动管理的链表解决71
3.7链表知识的扩展76
3.7.1单循环链表76
3.7.2双向链表77
3.8线表应用举例78
小结85
题86
上机实验题89
第4章栈和队列90
4.1引例90
4.2栈92
4.2.1栈的概念及运算92
4.2.2栈的顺序表示和实现93
4.2.3栈的链式表示和实现95
4.3引例中栈相关问题的解决98
4.3.1行编辑的解决98
4.3.2数制转换的解决99
4.3.3表达式求值的解决100
4.3.4递归实现的解决107
4.4队列109
4.4.1队列的概念及运算109
4.4.2队列的顺序表示和实现111
4.4.3队列的链式表示和实现114
4.4.4引例中银行个人业务模拟问题的解决117
小结119
题120
上机实验题123
第5章串124
5.1引例124
5.2串的概念及运算124
5.2.1串的定义124
5.2.2串的抽象数据类型定义125
5.3串的顺序表示和实现126
5.3.1串的顺序存储表示126
5.3.2顺序串基本运算的实现127
5.4串的链式表示和实现129
5.4.1串的链式存储表示129
5.4.2链串基本运算的实现130
5.5串的模式匹配132
5.5.1brute—force算法132
5.5.2kmp算法134
5.6引例的解决138
5.6.1名和姓对换问题的解决138
5.6.2文本文件中单词和查找问题的解决139
小结140
题140
上机实验题142
第6章数组和广义表143
6.1引例143
6.2数组144
6.2.1数组的概念及运算144
6.2.2数组的顺序存储表示145
6.2.3引例中求矩阵马鞍点问题的解决146
6.3特殊矩阵的压缩存储147
6.3.1对称矩阵147
6.3.2引例中求对称矩阵的和与乘积问题的解决148
6.3.3三角矩阵150
6.3.4引例中求三角矩阵的和与乘积问题的解决151
6.3.5对角矩阵152
6.4广义表153
6.4.1广义表的概念及运算153
6.4.2广义表的存储结构155
6.4.3引例中m元多项式表示问题的解决157
小结158
题158
上机实验题160
第7章树和二树161
7.1引例161
7.2树的概念及运算162
7.2.1树的定义162
7.2.2树的抽象数据类型定义164
7.3二树165
7.3.1二树的概念及运算165
7.3.2二树的质167
7.3.3二树的存储结构169
7.4遍历二树172
7.4.1遍历二树的概念和实现172
7.4.2根据遍历序列确定二树178
7.4.3遍历算法应用179
7.5线索二树182
7.5.1线索二树的概念182
7.5.2线索二树的构造和遍历184
7.6树和森林186
7.6.1树的存储结构186
7.6.2树、森林与二树的相互转换189
7.6.3树与森林的遍历191
7.7引例的解决193
7.7.1哈夫曼树用于编码的和方法193
7.7.2引例中字符编码和译码问题的解决196
7.7.3引例中报文编码和译码问题的解决202?
小结202
题203
上机实验题206
第8章图207
8.1引例207
8.2图的概念及运算210
8.2.1图的定义210
8.2.2图的术语211
8.2.3图的抽象数据类型定义215
8.3图的存储结构216
8.3.1邻接矩阵法216
8.3.2邻接表法219
8.4图的遍历222
8.4.1图的深度优先遍历222
8.4.2图的广度优先遍历225
8.4.3引例中按中转次数查询优航线的解决228
8.5小生成树231
8.5.1小生成树和通信网络建立231
8.5.2普里姆算法231
8.5.3克鲁斯卡尔算法236
8.5.4引例中通信网络建立问题的解决240
8.6短路径241
8.6.1两类短路径问题及应用241
8.6.2迪杰斯特拉算法242
8.6.3引例中按距离、飞行时间、票价查询优航线的解决246
8.6.4弗洛伊德算法248
8.6.5引例中医院选址问题的解决253
8.7拓扑排序254
8.7.1拓扑排序和课程计划制定254
8.7.2拓扑排序算法255
8.7.3引例中课程计划制定问题的解决258
8.8关键路径260
8.8.1aoe网和关键路径260
8.8.2关键路径算法261
8.8.3引例中工程工期计算问题的解决268
小结270
题270
上机实验题273
第9章查找274
9.1引例274
9.2查找的基本概念277
9.3线表的查找278
9.3.1顺序查找278
9.3.2折半查找279
9.4树表的查找282
9.4.1二排序树283
9.4.2衡二树292
9.4.3b—树296
9.4.4b+树303
9.5散列表304
9.5.1散列表的基本概念304
9.5.2散列函数的构造方法305
9.5.3处理的方法307
9.5.4散列表的查找及其分析308
9.6引例的解决312
9.6.1手机选择中查找相关问题的解决312
9.6.2火车票信息查询中查找相关问题的解决314
9.6.3课程管理中查找相关问题的解决316
9.6.4手机通讯录的解决320
小结321
题322
上机实验题325
0章排序326
10.1引例326
10.2排序的基本概念327
10.3插入排序328
10.3.1直接插入排序328
10.3.2折半插入排序329
10.3.3希尔排序330
10.4交换排序332
10.4.1冒泡排序332
10.4.2快速排序334
10.5选择排序337
10.5.1简单选择排序337
10.5.2堆排序338
10.6归并排序343
10.7基数排序345
10.7.1多关键字排序345
10.7.2基数排序346
10.8排序方法的比较讨论353
10.9引例的解决354
10.9.1手机选择中排序相关问题的解决354
10.9.2火车票信息查询中排序相关问题的解决355
10.9.3课程管理中排序相关问题的解决357
小结360
题360
上机实验题363
参文献364
索引365

内容简介:

本书介绍数据结构的基本内容,包括线表、栈和队列、串、数组和广义表、树和二树、图、排序、查找等。书中详细介绍了各种数据结构及其在相应结构下数据作的实现方法和能分析。本书借鉴理实一体化的编写理念,通过问题导入法,引入要的重点内容,以激发读者的学兴趣,用通俗的语言讲述基础理论,通过举例表述算法的设计思想,用c语言描述算法,并通过算法的设计与实现解决引入的问题,强化读者使用数据结构与算法解决实际问题的能力。

精彩内容:

靠前章绪论内容提要数据结构主要研究3个方面的问题:(1)数据的逻辑结构,即数据之间的逻辑关系;(2)数据的存储结构,即数据在计算机内的存储方式;(3)对数据的运算,即基于某种存储方式对数据的作。本章重点介绍数据结构研究的对象、基本概念,以及算法的描述和算法的能分析。学目标能力目标:能对算法进行时间复杂度和空间复杂度分析。知识目标:了解数据结构概貌,了解数据结构研究的问题,理解数据结构的基本概念,掌握描述算法的方法,以及算法的时间复杂度和空间复杂度概念。1.1引例早期的计算机主要用于科学计算,它所处理的数据是数值型数据,对于数值问题抽象出的模型通常是数学方程式,比如计算三角形面积公式、球体体积公式、银行存款利息计算公式等。随着计算机科学与技术的飞展,计算机的应用领域已不再局限于科学计算,而更多地应用于控制、管理等非数值型数据处理领域。计算机可处理的数据除数值型数据外,还有字符、表格、图形、图像、声音等具有结构的数据,并且处理的数据量也越来越大。这给程序设计带来一个问题:应如何组织、存储、处理这些数据呢?在这种情况下人们提出了数据结构,并逐步发展,形成了计算学科中一门很基础、很核心的课程,它以数据表示和数据处理的基本问题为研究的主要内容。下面以引例1.1~1.5说明本课程研究的对象。引例1.1:公园散步的人给定一批数据,数据元素之间除了具有相同属外没有其他任何关系。比如,在公园散步的人,他们除具有同一个特征—“散步的人”外,没有其他任何关系。我们把这些数据元素之间没有任何关系的数据结构称为集合结构。引例1.2:基本情况登记表如表1.1所示为一张简单的基本信息表。该表中的每一列称为一个属,列属的每个值表示一个的一个特征。表中的每一行称为一个记录,描述某个对象的多个特征。在数据结构中,将记录称为数据元素或结点。表中的数据元素按照的顺序排列,其排列的规则既可以按输入时的先后顺序排列,也可以按某个或某些属值大小的升序或降序排列。这种定义了元素之间的接近顺序关系的数据结构称为线数据结构,简称线表。例如,买“不理”的人一个接着一个排成队,这样形成了线关系。表1.1基本信息表引例1.3:计算机系统中文件的组织计算机可处理的信息是多种多样的,在通常情况下,这些信息以文件的形式存放在外存中,当计算机处理这些信息时才从外存装入内存进行加工处理。作系统中的文件系统的功能是专门负责文件在外存中的存放、读写、目录管理等。一般情况下,文件系统采用多级目录结构对文件实施管理,图1.1所示是一个文件系统的目录结构示意图。图1.1文件系统目录结构这种多级目录结构形成一棵倒立的树,树中的目录或文件抽象成数据元素,称为结点,结点之间的关系是一对多的关系,通常称此类具有一对多关系的数据结构为树型结构,简称树结构或树。引例1.4:计划编排一个计划包含许多课程,有些课程必须按规定的先后次序进行排课。表1.2列出了计算机软件专业的部分课程以及它们之间的开课先后次序,其中,c1、c2是独立于其他课程的基础课,其他课程都需要有先修课程,比如,数据结构课程必须安排在程序设计基础和离散数学两门课程之后。这些先决条件规定了课程安排的优先关系,这种优先关系可以用如图1.2所示的有向图来表示,其中,顶点表示课程,有向边表示前提条件。若课程i为课程j的先修课程,则必然存在有向边lt;i,jgt;。在制订计划时,必须保证在学某门课之前已学过其先修课程。从图1.2中可以看出,一门课程可以有多门先修课程,也可以有多门后继课程。这种元素之间存在着多对多关系的数据结构称为图结构。由以上4个例子可见,描述非数值问题的模型不再是数学方程式,而是集合、线表、树和图等数据结构。数据结构的主要任务是在对问题进行抽象形成模型后对模型进行求解。因此,数据结构是研究非数值问题中计算机的作对象以及作对象之间的关系和作的学科。图1.2课程之间关系的有向图表1.2软件专业部分课程设置及其开课先后次序表引例1.5:通讯录程序设计设计一个通讯录程序时需要虑哪些问题?当我们着手建立一个通讯录时,需要虑以下问题。(1)确定数据元素的结构:记录一个人员的信息时需要哪些信息项,由这些信息项构成通讯录中的数据元素。(2)数据的逻辑结构:以何种形式把数据元素组织在一起构成一个通迅录,即选择数据的逻辑结构。一般可以选择线表或树结构。(3)数据在逻辑结构上的运算:定义在数据的逻辑结构上可进行的运算,比如查找、增加、删除、修改数据元素,或按的规则对数据元素进行排序等。(4)数据存储结构的选择:当需要把通迅录存入计算机时,确定以何种方式存储数据元素,何种存储方式有利于运算的实现以及高效率地运行。(5)算法的设计:在确定的存储结构上实现数据的运算。(6)算法的实现:采用程序设计语言实现算法。1.2基本概念1.2.1数据、数据元素、数据项和数据对象数据(data)是一个抽象的概念,它是对客观事物的符号表示且能被计算机存储、处理。数据是信息的载体,信息是数据的内涵。数据包含的内容很好广泛,包括数值、文字、字符、声音、图像、图形、音频、等各种媒体。数据项(dataitem)是具有独立逻辑含义且不能再分解的数据。例如,基本信息中的学号、姓名、别、出生期、身高、体重等信息都是数据项。若数据项的值能专享标识一个数据元素,则称该数据项为关键字,如基本信息表中的数据项“学号”是一个关键字。数据元素(dataelement)是数据的基本单位,它由若干个数据项构成。在数据处理的过程中通常将数据元素作为整体进行虑和处理。例如,每个的基本信息是一个数据元素。在讨论数据结构时所涉及的很小的数据单位是数据元素。根据应用情境的不同,也称数据元素为元素、记录、结点或顶点。数据对象(dataobject)是具有相同质的数据元素的集合,是数据的子集。例如,所有的基本信息对应的数据元素构成的集合是一个数据对象。在计算机数据存储管理中,一个数据对象被组织成一个文件(或表)的形式进行整体存储、维护,并较为保存,因此,数据对象是数据存储管理单位。1.2.2数据结构数据结构(datatructure)是指数据元素之间的相互关系及数据的组织形式。它一般包括以下3方面的内容。1.数据的逻辑结构数据的逻辑结构是从数据元素之间的逻辑关系(主要是相邻关系)上描述数据的,它独立于计算机且与数据的存储无关。因此,数据的逻辑结构可以看作从具体问题抽象出来的数学模型。我们常用逻辑结构图来描述数据的逻辑结构,其描述方法是将每一个数据元素看作一个结点,用圆圈表示;元素之间的逻辑关系用结点之间的连线表示,如果强调关系的方向,则用带箭头的连线表示。通常,数据元素有下列4种形式的逻辑关系。(1)集合结构。所有数据元素除了属于同一个集合之外没有任何关系,每个元素都是孤立的。由于集合结构中数据元素之间没有任何关系,一般情况下,不对集合结构进行研究。引例1.1是一个与集合结构相关的例子,其结构示意图如图1.3(a)所示。(2)线结构。数据元素之间存在着一对一的关系,即所谓的线关系。引例1.2是一个线结构的例子,在该例中数据元素的逻辑结构可用图1.3(b)示意。在讨论线表时将涉及一些与线结构有关的问题,例如哪个元素是表中的靠前个元素;哪个元素是表中的很后一个元素;对于表中一个给定的元素而言,哪些元素在它之前,哪些元素在它之后;在一个线表有多少个元素等。(3)树结构。数据元素之间存在着一对多的层次关系。引例1.3是一个树结构的例子,其逻辑结构可用图1.3(c)示意。(4)图结构。数据元素之间存在着多对多的任意关系。引例1.4是一个图结构的例子,再如,公路交通网、电力网等,其逻辑结构示意如图1.3(d)所示。有时也把除线结构以外的其他3种结构称为非线结构。由于我们不对集合结构进行研究,因此,一般情况下,我们所说的非线结构常指树结构和图结构。注意:①逻辑结构与数据元素本身的内容无关。例如,在家谱管理系统中,不管如何描述一个人,比如用姓名、别、出生年月等描述,或用姓名、别、出生年月、照片等描述,人和人之间的关系是树的关系。②逻辑结构与数据元素的个数无关。例如,在家谱中增加或删除某些人,整个家谱还是一个树结构。2.数据的存储结构数据的逻辑结构可以看作从具体问题抽象出来的数学模型,它与数据的存储无关。我们把数据的逻辑结构在计算机存储器中的表示称为数据的存储结构,也称为数据的物理结构。它是数据的逻辑结构在计算机存储器中的映,必须依赖于计算机。图1.34种基本数据结构的示意图数据的存储结构包括数据元素本身的存储表示及其逻辑关系的存储表示。常见的存储结构有顺序存储结构、链式存储结构、索引存储结构和散列存储结构。(1)顺序存储结构是指把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。这种存储方式的优点是数据存储紧凑,数据元素所需空间与实际分配空间相等;缺点是由于只能使用相邻的一整块存储单元,因此需要预先分配连续的存储空间,即静态分配存储空间。另外,在顺序存储结构中,插入和删除结点可能需要移动大量的数据元素,从而花费较多的时间。在程序设计语言中,通常借助于数组来描述顺序存储结构。例如,图1.4所示5个字符a、b、c、d和e存储在从地址3000起始的连续的存储空间中。(2)链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,结点之间的逻辑关系由附加的指针域来体现。每个结点所占的存储单元包括两部分:一部分存放结点本身的信息,即数据域;另一部分存放后继结点的地址,即指针域。结点间的逻辑关系由附加的指针域表示。这种存储结构的优点是:可按需动态申请和释放存储空间,而且在进行插入和删除结点作时只需修改指针,无需移动数据元素;缺点是:每个结点在存储时都要附加指针域,占用较多的存储空间。链式存储结构常借助于程序设计语言中的指针类型来描述。例如,图1.5表示5个元素(12、45、56、57、70)构成的有序表的链式存储结构,从地址1000开始存放靠前个元素,下一个元素存放的位置在数据域后面的地址域中指明。(3)索引存储结构是用结点的索引号来确定结点的存储地址。在储存结点信息的同时,要建立附加的索引表。其优点是检索速度快;缺点是增加了附加的索引表,占用较多的存储空间,在进行插入和删除结点的作时需要花费的时间来维护索引表。(4)散列存储结构,也称哈希(hah)存储结构,它是根据结点的关键字值直接计算出该结点的存储地址,即通过散列函数把结点间的逻辑关系对应到不同的物理空间。其优点是检索、插入和删除结点的作都很快;缺点是散列函数会产生若干不同结点的散列值相等的情况,即散列函数会发生,为解决需要附加时间和空间的开销。数据的存储结构是研究数据结构的重要方面,熟练地掌握好各种存储结构,是设计高效程序和大型的应用软件的前提条件。图1.4顺序存储结构图1.5链式存储结构3.数据的运算为了更有效地处理数

—  没有更多了  —

以下为对购买帮助不大的评价

正版特价新书
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP