2022年全国计算机等级考试二级公共基础之树与二叉树1_第1页
2022年全国计算机等级考试二级公共基础之树与二叉树1_第2页
2022年全国计算机等级考试二级公共基础之树与二叉树1_第3页
2022年全国计算机等级考试二级公共基础之树与二叉树1_第4页
2022年全国计算机等级考试二级公共基础之树与二叉树1_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试二级公共基础之树与二叉树1.6 树与二叉树1.6.1 树的基本概念树是一种简单的非线性结构。在树这种结构中, 所有元素之间的关系具有明显的层次关系。用图形表示树这种数据结构时,就象自然界中的倒长的树,这种结构就用“树”来命名。如图:在树结构中,每个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根(如r)。在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点(如w ,z,a ,l,b,n ,o ,t,h,x)。在树结构中,一个结点拥有的后件个数称为结点的度(如 r的度为 4, kpqdec结点度均为 2)。

2、树的结点是层次结构,一般按如下原则分层:根结点在第1 层;同一个层所有结点的所有子结点都在下一层。树的最大层次称为树的深度 。如上图中的树深度为 4。r结点有 4 棵子树, kpqdec 结占各有两棵子树;叶子没有子树。在计算机中,可以用树结构表示算术运算。在算术运算中,一个运算符可以有若干个运算对象。如取正(+)与取负( -)运算符只有一个运算对象,称为单目运算符;加( +)、减( -)、乘( *)、除( / )、乘幂( * )有两个运算对象,称为双目运算符; 三元函数 f(x,y,z)为 f函数运算符, 有三个运算对象,称为三目运算符。多元函数有多个运算对象称多目运算符。用树表示算术表达式

3、原则是:(1) 表达式中的每一个运算符在树中对应一个结点,称为运算符结点精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 1 页,共 9 页 - - - - - - - - -(2) 运算符的每一个运算对象在树中为该运算结点的子树( 在树中的顺序从左到右 ) (3) 运算对象中的单变量均为叶子结点根据上面原则,可将表达式:a*(b+c/d)+c*h-g*f表示如下的树。树在计算机中通常用多重链表表示,多重链表

4、的每个结点描述了树中对应结点的信息,每个结点中的链域(指针域)个数随树中该结点的度而定。1.6.2 二叉树及其基本性质 1. 什么是二叉树二叉树是很有用的非线性结构。它与树结构很相似, 树结构的所有术语都可用到二叉树这种结构上。二叉树具有以下两个特点:(1)非空两叉树只有一个根结点(2)每个结点最多有两棵子树,且分别称该结点的左子树与右子树。也就是说,在二叉树中,每一个结点的度最大为2,而且所有子树也均为二叉树。二叉树中的每一个结点可以有左子树没有右子树,也可以有右子树没有左子树,甚至左右子树都没有。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2

5、 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 2. 二叉树的基本性质二叉树性质有:性质 1:在二叉树的第k层上,最多有 2k-1(k=1) 个结点性质 2:深度为 m 的二叉树最多有2m-1 个结点性质 3:在任意一棵二叉树中,度为0 的结点(即叶子结点)总比度为2 的结点多一个性质 4:具有 n 个结占的二叉树,其深度至少为log2n+1, 其中log2n 表示取 log2n 的整数部分。 3. 满二叉树与完全二叉树(1) 满二叉树满两叉树

6、是除了最后一层外,每一层上的所有结点都有两个子结点。即在满二叉树中,每一层上的结点数都达到最大值。在满二叉树的第k 层上有 2k-1个结点,且深度为m的满二叉树有 2m-1 个结点。如图:深度为 2 的满二叉树精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 3 页,共 9 页 - - - - - - - - -深度为 3 的满二叉树深度为 4 的满二叉树(2) 完全二叉树完全二叉树除最后一层外,每一层上的结

7、点数均达到最大数;最后一层只缺少右边的若干结点。如图深度为 3 的完全二叉树精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 4 页,共 9 页 - - - - - - - - -深度为 4 的完全二叉树完全二叉树具有以下两个性质:性质 5:具有 n 个结点的完全二叉树的深度为log2n+1 精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 9 页 - -

8、 - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 5 页,共 9 页 - - - - - - - - -性质 6:设完全 log2n+1 有 n 个结点 ( 如右图 10 个结点 , 编号如图 )。如果从根结点开始,按层序用自然数1,2, n 给结点进行编号,则对于编号为k(k=1,2, n)的结点有以下结论:(1)若 k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为 int(k/2) 。如结点 d的编号 k=4,则它的父结点 b的编号为 2 (2)若 2k=n,则编号为 k 的结点的左子结点编号为2k

9、,否则该结点无左子结点(也无右子结点),如结点d的编号 k=4,则 8=10,它的左子结点h编号为 8 (3)若 2k+1=n,则编号为 k 的结点的右子结点编号为2k+1,否则该结点无右子结点。如结点d的编号 k=4,则 9=10,它的右左子结点h编号为 9 1.6.3 二叉树的存储结构在计算机中,二叉树通常采用链式存储结构。与线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域与指针域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向结点的左子树结构的存储地址,称为左指针域;另一个用于指向右子树结点的存储

10、地址,称为右指针域。由于二叉树的存储结构中每一个存储结点有两个指针域,因此二叉树的链式存储结构也称为二叉链表。二叉树存储结构如图:二叉树精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 6 页,共 9 页 - - - - - - - - -二叉链表的逻辑状态1.6.4 二叉树的遍历二叉树的遍历是指不重复的访问二叉树中的所有结点。由于二叉树是一种非线性结构, 因此对二叉树的遍历要比遍历线性表复杂很多。在遍历二叉

11、树过程中,当访问到某个结点时,再往下访问可能有两个分支,应访问哪一个分支呢?对于二叉树来说需要访问根结点、左子树所有结点、右子树所有结点,在这三者中,应访问哪一个?也就是说,遍历二叉树实际是要确定访问各结点的顺序。以便不重复又不能丢掉访问结点,直到访问到所有结点。在遍历二叉树的过程中,一般选遍历左子树,然后再遍历右子树,在先左后右原则下根据访问结点次序,二叉树的遍历分为三种方法。方法如下: 1. 前序遍历( dlr )前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。即:若二叉树为空则结束返回,否则:(1)访问根结点(2

12、)前序遍历左子树(3)前序遍历右子树注意的是:遍历左右子树时仍然采用前序遍历方法。例:如图二叉树,精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 7 页,共 9 页 - - - - - - - - -则前序遍历结果是: a b d e c f 2. 中序遍历( ldr )中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。即:若二叉树为

13、空则结束返回,否则:(1)中序遍历左子树(2)访问根结点(3)中序遍历右子树。注意的是:遍历左右子树时仍然采用中序遍历方法。例:如图二叉树,则中序遍历结果是: d b e a f c 3. 后序遍历( lrd )后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。即:若二叉树为空则结束返回,否则:(1)后序遍历左子树,(2)后序遍历右子树(3)最后访问根结点。精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 9 页 - - - - - - - - -精品学习资料 可选择p d f - - - - - - - - - - - - - - 第 8 页,共 9 页 - - - -

温馨提示

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

评论

0/150

提交评论