数据结构与算法-课件_第1页
数据结构与算法-课件_第2页
数据结构与算法-课件_第3页
数据结构与算法-课件_第4页
数据结构与算法-课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 数据的组织 4.1 数据结构 4.2 文件结构 4.3 数据库第四章 数据的组织 4.1 数据结构本讲主要内容 一、数据结构 二、线性表 三、栈 四、队列 五、树与二叉树 本讲主要内容 一、数据结构一、数据结构 存储器分内存储器和外存储器,数据结构研究具有逻辑结构关系的数据在计算机内存储器的存储方法和在外存储器中以文件形式的组织和存储方式 数据结构:数据的组织形式和存储方式一、数据结构 存储器分内存储器和外存储器,数据生活中的数据结构季度名称组成的集合春,夏,秋,冬是数据结构: 家庭成员祖父、父亲、儿子是数据结构数据元素之间有位置上的前后关系 数据元素之间有层次上的高低关系 生活中的数

2、据结构季度名称组成的集合春,夏,秋,冬家庭成员学号姓名性别出生日期班级专业20040001刘强男1984/02/1314001机械制造20040002王晓女1986/05/0614001机械制造20040003李明男1984/10/2514001机械制造20040041张宇男1984/06/1414002机械电子工程学号和姓名等组成的学籍表是数据结构学号姓名性别出生日期班级专业20040001刘强男1984/数据结构:指互相之间存在着一种或多种关系的数据元素 的集合。 主要研究:数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; 在处理数据时,各数据元素在计算机中的存储关系,即数据的

3、物理结构(存储结构); 对数据进行的操作(运算),包括插入、删除、查找、排序等。数据结构包括数据的逻辑结构和物理结构(或存储结构)定义:数据结构:指互相之间存在着一种或多种关系的数据元素 数据的逻辑结构 只抽象地反映数据元素的结构,而不管其存储方式的数据结构。 数据之间的4 种基本逻辑结构: 集合、线性、树形、图状 集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。集合 数据的逻辑结构 只抽象地反映数据元素的结构, 线性结构:结构中的数据元素之间存在着一对一的线性关系。线性例如:春夏冬秋 线性结构:结构中的数据元素之间存在着线性例如:春夏冬秋 树形结构:结构中的数据元素

4、之间存在着一对多的层次关系。树图 图状(网状)结构:结构中的数据元素之间存在着多对多的任意关系。 树形结构:结构中的数据元素之间存在着一对多的层次关系。树图 由于集合关系松散,因此可用其他结构代替,故数据的逻辑结构可概括为: 线性结构 非线性结构有且只有一个开始结点和一个终端结点,并且每个结点最多只有一个前驱和一个后继,线性结构也称为线性表。栈、队列、数组和串等是特殊线性表非线性结构包括树和图 由于集合关系松散,因此可用其他结构代替,故数据的逻辑三、线性表三、线性表向量2,43,68,45,32是线性表。季度名称 春,夏,秋,冬是线性表。英文字母表 A,B,Z是线性表。学生基本信息: (200

5、40001,刘强,男,1984/02/13,14001, 机械制造), (20040002,王晓红,女,1986/05/06,14001,机械制造), (20040003,李明,男,1984/10/25,14001,机械制造) 是线性表。向量2,43,68,45,32是线性表。季度名称 线性表是由n(n=0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个元素无直接前驱,最后一个元素无直接后继,其它元素有且只有一个直接前驱和直接后继。即可表示为:(a1,a2,ai,an),其中ai是性质相同的数据元素,也称为线性表中的一个结点。线性表 线性表是由n(n=0)个数据元素组成的一个举

6、例:用桶堆积物品,先放进来的压在底下,随后一件一件往上放。取走时,只能从上面一件一件取。放和取都在顶部进行,底部一般是不动的。四、栈 举例:手枪子弹夹中的子弹,子弹的装入与子弹弹出膛均在弹夹的最上端进行,先装入的子弹后发出,后装入的子弹先发出。举例:用桶堆积物品,先放进来的压在底下,随后一件一件往上放。 栈是限定只能在表的一端进行插入和删除的线性表。它按照“后进先出”(LIFO)的原则组织数据。表中允许插入和删除的一端叫做栈顶,表中的固定端叫做栈底。 栈是限定只能在表的一端进行插入和删除的线性五、队列 五、队列 队列是限定只能在表的一端进行插入,在表的另一端进行删除的线性表。它按照“先进先出”

7、(FIFO)的原则组织数据。表中允许插入的一端叫做队尾,允许删除的一端叫做队头。a2a1a3 an出队列入队列头尾队列示意图 队列是限定只能在表的一端进行插入,在表a2a1六、树与二叉树因为现实世界中存在着“树”这种结构 族谱、等级制度、目录分类等。特别是在大量数据处理(如文件系统、编译系统、目录组织等)方面,树型结构的应用非常广泛。 而为了研究这类问题,必须能够将树储存,而如何储存将取决于所需要的操作。树六、树与二叉树因为现实世界中存在着“树”这种结构 族谱、 树形结构是一种简单的非线性结构。树是由n(n0)个结点组成的有限集合。当n=0时,称为空树;否则,有且仅有一个根结点,当n1时,其余

8、结点被分成m(m0)个互不相交的子集T1,T2,.,Tm,每个子集又是一棵树。树1、树的基本术语 每个结点只有一个前驱,称为父结点;只有一个没有前驱的结点,称为根结点; 树形结构是一种简单的非线性结构。树是由n(n0)个每个结点可以有多个后继,称为该结点的子结点;没有后继的结点称为叶子结点;AEBCDFGHIJKL根子结点叶子结点每个结点可以有多个后继,称为该结点的子结点;AEBCDFG一个结点所拥有的后继个数称为该结点的度;树中所有结点的度的最大值称为树的度;AEBCDFGHIJKL一个结点所拥有的后继个数称为该结点的度;AEBCDFGHI树中结点的最大层次称为树的深度。 AEBCDFGHI

9、JKL 结点的层次从根结点算起,根结点的层次为1,根的直接后继结点的层次为2,依次类推。 1 2 3 4树中结点的最大层次称为树的深度。 AEBCDFGHIJK 二叉树 对树应该讨论它的实现与操作,由于树结构的不确定性,每个结点的度可以不同,处理时相对比较麻烦。讨论另外一种树二叉树相对来说简单一些。树型结构通常转换成二叉树来讨论,因为二叉树适合计算机处理。下面讨论二叉树的概念及遍历。 二叉树 对树应该讨论它的实现与操作,由于树 满足以下两个条件的树型结构叫做二叉树:每个结点的度都不大于2,即每个结点最多有两棵子树(度只能是0、1、2)。每个结点的孩子结点次序不能颠倒,即严格区分是左子树还是右子

10、树。ABCDEFGHABCDEF 满足以下两个条件的树型结构叫做二叉树:ABCDEFGH非空二叉树有且只有一个根结点;每个结点最多有两棵子树, 且有左右之分特点:ATXCZYBP深度为4的二叉树非空二叉树有且只有一个根结点;特点:ATXCZYBP深度为41、五种基本形态 空二叉树只有根结点只有左子树有左和右子树只有右子树1、五种基本形态 空二叉树只有根结点只有左子树有左和右子树2、二叉树的基本性质在二叉树的第i层上,最多有2i-1(i=1)个结点。深度为k的二叉树中结点总数最多为2k-1。2、二叉树的基本性质在二叉树的第i层上,最多有2i-1(i3、满二叉树 深度为k的二叉树有2k-1个结点(

11、即性质2中允许的最大值)。3、满二叉树 深度为k的二叉树有2k-1个结点( 4、完全二叉树 除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。 4、完全二叉树 除最后一层 为什么需要遍历二叉树?5、二叉树的遍历 二叉树是非线性数据结构,通过遍历可以将二叉树中的结点访问一次且仅一次,从而得到访问结点的顺序序列。 从这个意义上说,遍历操作就是将二叉树中结点按一定规律线性化的操作,目的在于将非线性化结构变成线性化的访问序列。 为什么需要遍历二叉树?5、二叉树的遍历 遍历二叉树:按照某种顺序访问二叉树中每个结点的过程,每个结点被访问一次且仅一次。根据对根访问的次序,二叉树的

12、遍历分为先序遍历(DLR) 、中序遍历(LDR)和后序遍历(LRD) 。遍历二叉树:按照某种顺序访问二叉树中每个结点的过程,每个结点先序遍历 (DLR) 访问根结点 先序遍历左子树 先序遍历右子树ATXCZYBP深度为4的二叉树A遍历结果:TBZXCPY因为左子树空,故遍历右子树先序遍历 (DLR) 访问根结点ATXCZYBP深度为4中序遍历(LDR) 中序遍历左子树 访问根结点 中序遍历右子树ATXCZYBP深度为4的二叉树ATZBCXYP因为左子树空遍历结果:中序遍历(LDR) 中序遍历左子树ATXCZYBP深度为4 后序遍历左子树 后序遍历右子树 访问根结点后序遍历(LRD) ATXCZ

13、YBP深度为4的二叉树遍历结果:ATXCZYBP深度为4的二叉树ATZBCXYP因为左子树空,故遍历右子树 后序遍历左子树后序遍历(LRD) ATXCZYBP深度为按先序遍历序列(DLR) ABDECFGH 按中序遍历序列(LDR) DEBFCGAHAHEFGDCB按后序遍历序列(LRD) EDFGCBHA 按先序遍历序列(DLR) ABDECFGH 按中序遍历序列思考1:给定结点的中序序列和后序序列是否可以唯一确定一棵二叉树?思考2:给定结点的前序序列和后序序列是否可以唯一确定一棵二叉树?思考1:给定结点的中序序列和后序序列是否可以唯一确定一棵二叉1、下列选项中不属于算法特征的是(D)。A)

14、有穷性和确定性 B)有效性 C)至少一个输出 D)集合性2、栈和队列的共同特点是(C)A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点课堂练习:1、下列选项中不属于算法特征的是(D)。课堂练习:3、下列关于队列的说法正确的是(C)。 A)在队列中只能插入数B)在队列中只能删除数据 C)队列是先进先出的线性表 D)队列是先进后出的线性表4、在计算机中,算法是指(B)。 )加工方法 )解决给定问题的一种方法 )排序方法 )查询方法3、下列关于队列的说法正确的是(C)。5、以下不属于数据的四类基本逻辑结构的是(B)。 A)集合结构 B)圆形结构 C)树形结构 D)线性结构6、数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论