第07章二叉树.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第07章二叉树

第7章 二叉树;7.1 二叉树的基本概念 1.定义:二叉树是一个由结点构成的有限集合,这个集合或者为空,或者由一个根结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。当二叉树的结点集合为空时,称为空二叉树 。 ;2.二叉树有以下五种基本形态: ; 3.二叉树与一般树型结构的主要区别在于: (1)二叉树中每个非空结点最多只有两个子女,而 一般的树型结构中每个非空结点可以有0到多 个子女; (2)二叉树中结点的子树要区分左子树和右子树, 即使在结点只有一棵子树的情况下也要明确指 出是左子树还是右子树。 ;4.二叉树具有以下重要性质: 性质1 一棵非空二叉树的第i层上至多有2i-1个结点 (i≥1)。 证明:当i=1时,只有根结点,此时21-1=20=1,显然上述性质成立;又由于在二叉树中每个结点最多只能具有两个子女,因而第i层上结点的最大个数是第i-1层上结点的最大个数的两倍。于是第2层上结点的最大个数为2,第3层上结点的最大个数为4,……,则第i层上结点的最大个数即为2i-1。 性质2 深度为h的二叉树至多有2h-1个结点(h1)。 根据性质1,深度为h的二叉树最多具有的结点的个数为20+21+22+…+2h-1=2h-1。 ;性质3 对于任何一棵二叉树T,如果其终端结点数为 n0,度为2的结点数为n2,则n0=n2+1。 证明:假设二叉树中总的结点个数为n ,度为1的结点个数为n1,则有: n=n0+n1+n2 又由于在二叉树中除根结点外,其它结点均通过一条树枝且仅通过一条树枝与其父母结点相连,B为树枝数: n=B+1 而二叉树中树枝的总条数为B=n1+2*n2,因而二叉树总结点的个数为: n=n1+2*n2+1 于是有: n0+n1+n2=n1+2*n2+1 显然n0=n2+1成立。 ; 如果一棵二叉树中所有终端结点均位于同一层次,而其它非终端结点的度数均为2,则称此二叉树为满二叉树。在满二叉树中,若其深度为h,则其所包含的结点个数必为2h-1。 下图中的二叉树即为一棵深度为3的满二叉树,其结点的个数为23-1=7。 ; 如果一棵二叉树扣除其最大层次那层后即成为一棵满二叉树,且层次最大那层的所有结点均向左靠齐,则称该二叉树为完全二叉树。 下图所示的二叉树即为一棵深度为3的完全二叉树。 若对深度相同的满二叉树和完全二叉树中的所有结点按自上而下、同一层次按自左向右的顺序依次编号,则两者对应位置上的结点编号应该相同。 ;对于完全二叉树,具有以下性质: 性质4 对于具有n个结点的完全二叉树,如果按照从上到下、同一层次上的结点按从左到右的顺序对二叉树中的所有结点从1开始顺序编号,则对于序号为i的结点,有: (1)如果i1,则序号为i的结点其双亲结点的序号 为?i/2? (?i/2?表示对i/2的值取整);如果 i=1, 则结点i为根结点,没有双亲; (2)如果2in,则结点i无左子女(此时结点i为终 端结点);否则其左子女为结点2i; (3)如果2i+1n,则结点i无右子女;否则其右子 女为结点2i+1。 ;7.2 二叉树的存储结构 存储结构有两种:顺序存储结构和链式存储结构。 一. 顺序存储结构 顺序存储结构是使用一组连续的空间存储二叉树的数据元素和数据元素之间的关系。因此必须将二叉树中所有的结点排成一个适当的线性序列,在这个线性序列中应采用有效的方式体现结点之间的逻辑关系。 ;1 、完全二叉树的顺序存储 对于一棵具有n个结点的完全二叉树,我们可以按从上到下、同一层次按从左到右的顺序依次将结点存入一个一维数组中。根据上述性质4,无须附加任何其它信息就能根据每个结点的下标找到它的子女结点和双亲结点。 ;2 一般二叉树的顺序存储 由于二叉树中每个结点最多只有两个子女,于是存储一个结点时,除了包含结点本身的属性值外,另外增加两个域,分别用来指向该结点的两个子女在数组中的下标。 ;二. 链式存储结构 二叉树的链式存储方式下每个结点也包含三个域,分别记录该结点的属性值及左、右子树的位置。与顺序存储结构不同的是,其左、右子树的位置不是通过数组的下标,而是通过指针方式体现,如下图所示: lchild data rchild ? ? ? 指针域

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档