当前位置:文档之家› 计算机导论-第6章 数据结构

计算机导论-第6章 数据结构

⑴集合结构。在集合结构中,数据元素间的关系是“属于 同一个集合”。集合是元素关系极为松散的一种结构。
单击此处添课程名 ⑵线性结构。该结构的数据元素之间存在着一对一的关系。
⑶树型结构。该结构的数据元素之间存在着一对多的关系。
⑷图型结构。该结构的数据元素之间存在着多对多的关系, 图形结构也称作网状结构。
具有特殊的意义,称为栈顶。相应地,表尾 称为栈底。不含任何元素的栈称为空栈。
2. 栈的数学性质
假设一个栈S中的元素为an,an-1,..,a1,则 称a1为栈底元素,an为栈顶元 素。栈中的
元 时素 候按 ,单出a ,a栈击2,的..此,元an素-处1,都an添是的栈次课顶序程元进素栈名。。换在句任话何
第六章 数单据击结此构处添课程名
第6章 数据结构
• 数据结构是计算机软件和计算机应用专业的 核心课程之一,对于学习计算机专业的其他 课程,如操作系统、编译原理、数据库管理
系的统 。、 数软 据单件 结击工 构程主此、要处人研工究添智数能据课等表程都示是 与名十 存储分的有方益
法、抽象的逻辑结构及其上定义的各种基本 操作。数据的逻辑结构常常采用数学描述的 抽象符号和有关的理论。如使用串、表、数 组、图等结构和理论来表示数据在存储时的 逻辑结构,研究这些结构上定义的各种操作 。
本章内容
• 6.1 数据结构的概念 • 6.2 几种典型的数据结构 • 6.3 查找
• 6.4 单排序击此处添课程名
6.1 数据结构的概念
• 在系统地学习数据结构知识之前,先对一 些与数据结构相关的基本概念和术语赋予 确切的含义。
• 数 算机据单识(别D击at、a此)存是储处信和添息加的工课载处体理程,。名它它能是够计被算计机 程序加工的原料,应用程序处理各种各样 的数据。
( 就或 是直 其单接 中后 十击继分)重此元要处素的。非添树线课型性结结程构构和 ,名图 可型 以结 用构 来
描述客观世界中广泛存在的层次结构和网状
结构的关系,如前面提到的族谱、城市交通 等。
• 树(Tree)是n(n≥0)个有限数据元素的集 合。当n=0时,称这棵树为空树。在一棵非空
(树1T)中有:单:一击个特此殊的处数添据元课素程称为名树的根结点,
串表示数据元素,通常这个位串称为元素
( 由若Ele干m单数ent据)击项或组此结成点处时(,添N位o课d串e)中程。对名当应数于据各元个数素
据项的子位串称为数据域(Data Field)。
• 元素或结点可看成数据元素在计算机中的映象。 即数据结构 DS 的物理结构 P 对应于从 DS 的数 据元素到存储区M(维护着逻辑结构S)的一个
是 的孤 关立 系单的 ,,这击在种它数此们据处之元间素添都之课存间在的程着关这系名样称或为那结样构。
• 数据结构是信息的一种组织方式,其目的是 为了提高算法的效率,它通常与一组算法的 集合相对应,通过这组算法集合可以对数据 结构中的数据进行某种操作。
根据数据元素间关系的不同特性,通常有下列四类基本 的结构:
继 多的 事数 物单据 的击关 关系系此进并行非处描这添述样,简课而单程现,实如名中 人的 类许 社
会的族谱、各种社会组织机构以及城市 交通、通讯等,这些事物中的联系都是 非线性的,采用非线性结构进行描绘会 更明确和便利。
• 所谓非线性结构是指在该结构中至少存在一 个数据元素,有两个或两个以上的直接前驱
• 计算机科学中,所谓数据就是计算机加工处 理的对象,它可以是数值数据,也可以是非
数值数据。数值数据是指整数、实数或复数
等,主要用于工程计算、科学计算和商务处
理等;单非击数值此数处据包添括课字符程、名文字、图形、
图像、语音等。
• 数据元素(Data Element)是数据的基本单 位。在不同的条件下,数据元素又可称为元
物理上的相邻实现数据元素之间的逻辑相邻 关系是既简单,又自然的。
0 1 单…击此i处-1 i添课…程n-名1 …maxaize1-1,
data a1 a2 … ai-1 ai ai+1 … an …
last
• 这就是说只要知道顺序表首地址和每个数据 元素所占地址单元的个数就可求出第i个数据
元素的地址来,这也是顺序表具有按数据元
• 树是很好的DS——它有非常简单而高效的线 性化规则,因此可以利用树设计出许多非常
高效的算法。树的实现和使用都很简单,但
可 际以 编解 程决 中单大 最击量重特要此殊和处的最复有添杂用课问的题一程,种因 数名此 据树结是构实。
树的结构本质上有递归的性质——每一个叶 节点可以被一棵子树所替代,反之亦然。实
• 除了通常采用的顺序ห้องสมุดไป่ตู้储方法和链式存储方 法外,有时为了查找的方便还采用索引存储 方法和散列存储方法。
6.2 几种典型的数据结构
6.2.1 线性表
线性表是一种线性结构。线性结构的特点是 数据元素之间是一种线性关系,数据元素
“ 据元一素个单的接类一击型个此是的相排处同列添的”。,课在或程一者个说名线 线性 性表 表中 是数 由
除操作只在单表头击(称此为队处头添)进行课,程插入名操作只在表
尾(称为队尾)进行。队列的修改是按先进先出的原 则进行的,所以队列又称为先进先出(First In First Out)表,简称FIFO表。
2.队列的数学性质 假设队列为a1,a2,..,an,那么a1就是队头元素,
a的n顺为序队进尾入元单的素击,。退队此出列处队中列的添也元课只素能是程按按照a名1这,a个2,次..序,an
单击此处添课程名 (a)集合结构
(b)线性结构
(c)树型结构
(d)图形结构
图6.1 四类基本结构的示意图
• 表和树是最常用的两种高效数据结构,许多高效
的算法可以用这两种数据结构来设计实现。表是 线性结构(全序关系),树(偏序或层次关系)和
图(局部有单序(击wea此k/lo处cal o添rde课rs))程是名非线性结构。
素的序号单随击机存此取处的特添点。课程名
• 从表的定义不难看出表具有以下数学性质: 除了表头和表尾外,表中的每一个元素有且
仅有唯一的前驱和唯一的后继,表头有且只
有一个后继,表尾有且只有一个前驱。
6.2.2 堆栈
1. 栈的定义
行栈插是入一单和种删特击除殊操此的作线处。性因添表此,课,这表程种头表名对只于在栈表来头说进
的数学模型,它与数据的存储无关。我们研究数
据结构的目的是为了在计算机中实现对它的操作,
为此还需单要研击究此如何处在添计算课机中程表名示一个数据结
构。数据结构在计算机中的标识(又称映像)称 为数据的物理结构,或称存储结构。
• 在计算机中信息表示的最小单位是二进制的 一位,我们用若干位组合起来形成的一个位
素 属于都同具单有一相数击同据此的对性象处质(添(数元据课素元值素程不类名一)定,相数等据)元,
素是数据元素类的一个实例。
一在个交数通据咨单元询击素系类统此,的处顶交点通添A网和课中顶,点程所B各有名自的代顶表点一是
个城市,是该数据元素类中的两个实例,其 数据元素的值分别为A和B。
• 数据结构(Data Structure,简称DS)是指互 相之间存在着一种或多种关系的数据元素的 集合。在任何问题中,数据元素之间都不会
生 别记 、录 籍单。 贯击它 、包出此括生处学年生月添的、课学成号绩程、等姓数名名 据、 项性 。
这些数据项可以分为两种:一种叫做初 等项,如学生的性别、籍贯等,这些数 据项是在数据处理时不能再分割的最小 单位;
• 数 据 对 象 ( Data Object ) 或 数 据 元 素 类 (Data Element Class)是具有相同性质的数 据元素的集合。在某个具体问题中,数据元
依次退出。也就是说,只有在a1离开队列之后, a2才能退出队列,只有在a1,a2,..,an-1都离开 队列之后,an才能退出队列。
出队列 a单1 击a2此处a3添课…程a名n 入队列
队头
队尾
6.2.4 树
• 线性结构的特点是逻辑结构简单,易于 进行查找、插入和删除等操作,其主要 用于对客观世界中具有单一的前驱和后
映射:P:单(D击S) --此> M处。 添课程名
• 数据结构主要研究以下三个方面的内容:数据 的逻辑结构;数据的物理存储结构;对数据的
操作(或算法)。通常,算法的设计取决于数
据的逻辑结构,算法的实现取决于数据的物理 存储结构。
• 数据的存储结构可采用顺序存储或链式存储的 方法。
• 顺理序 位存 置储 相单方 邻法 的击是 存此把储逻单处辑元添上中相,课邻由程的此元得名到素的存存储储在表物
际上,每一种递归的结构都可以被转化为 (或等价于)树形结构。
• 树具有下面两个特点:
(1)树的根结点没有前驱结点,除根结点之 外的所有结点有且只有一个前驱结点。
(2)树单中所击有结此点处可以添有课零个程或名多个后继结 点。
A
A
A
B C 单击B 此C处添课B 程C D 名B
说,栈的修改是按后进先出的原则进行的, 如图1所示。因此,栈又称为后进先出(Last In First Out)表,简称为LIFO表。所以,只 要问题满足LIFO原则,就可以使用栈。
出栈
入栈
栈顶单击此aa处nn-1添课程名

a2
栈底
a1
6.2.3 队列
1.队列的定义 队列也是一种特殊的线性表。对这种线性表,删
示称为顺序存储结构。顺序存储结构是一种最 基本的存储表示方法,通常借助于程序设计语 言中的数组来实现。
• 链式存储方法对逻辑上相邻的元素不要求其 物理位置相邻,元素间的逻辑关系通过附设 的指针字段来表示,由此得到的存储表示称
为程序链设式计存单语储言击结中构此的,指处链针式添类存型课储来结实程构现名通。常借助于
相关主题