二叉树性质及习题

二叉树性质及习题二叉树性质:1.在二叉树的第k层至多有2^(k-1)个结点。(k>=1)2.深度为k的二叉树至多有2^(k-1)个结点(k>=1)。3.对任何一棵二叉树T,如果其叶结点数为n0,度为2的结点数为n2,则n0=n2+1。证明:若度为1的结点有n1个,总结点个数为n,总边数为e,则根据二叉树的定义,n=n0+n1+n2…

大家好,又见面了,我是你们的朋友全栈君。

二叉树性质:
1.在二叉树的第 k层至多有 2^(k -1)个结点。(k>=1)
2.深度为 k 的二叉树至多有 2^(k-1)个结点(k >=1)。
3. 对任何一棵二叉树T, 如果其叶结点数为n0, 度为2的结点数为 n2,则n0=n2+1。
证明:
若度为1的结点有 n1个,总结点个数为n,总边数为 e,则根据二叉树的定义,

        n = n0 + n1 + n2    

        e = 2n2 + n1 = n - 1 (除了根节点,每个节点对应一条边 )

       因此,有  2n2+ n1 =n0 + n1 + n2- 1

                      n2= n0 - 1  =>   n0= n2+ 1

      空链域:2n0+ n1 = n0 + n2 +1+ n1 = n+1

4.具有 n (n>=0) 个结点的完全二叉树的深度为+1

   证明:设完全二叉树的深度为 h,则根据性质2 和完全二叉树的定义有

        2^(h-1)- 1 < n <= 2^h - 1或 2^(h-1)<= n < 2^h

           取对数 h-1 < log2n  <= h,又h是整数,

           因此有 h = +1 

5.如果对一棵有n个结点的完全二叉树的结点按层序编号(从第一层到最后一层,每层从左到右),对任一结点i(1<=i<=n)有:

如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点 ⌊ i/2 ⌋ 。
如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子是结点2i 。
如果2i+1>n,则结点i无右孩子;否则其右孩子是结点2i+1 。

完全二叉树:
定义:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(结点可为单个)
(1)所有的叶结点都出现在第k层或k-l层(层次最大的两层)
(2)对任一结点,如果其右子树的最大层次为L,则其左子树的最大层次为L或L+l。
在这里插入图片描述

性质:
如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。

可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,则 :
①n= n0+n1+n2 (其中n为完全二叉树的结点总数);又因为一 个度为2的结点会有2个子结点,一个度为1的结点会有1个子结点,除根结点外其他结点都有父结点
②n= 1+n1+2n2 ;由①、②两式把n2消去得:n= 2n0+n1-1,**由于完全二叉树中度为1的结点数只有两种可能0或1,**由此得到n0=n/2 或 n0=(n+1)/2。

 **简便来算,就是 n0=n/2,其中n为奇数时(n1=0)向上取整;n为偶数时(n1=1)向下取整。可根据完全二叉树的结点总数计算出叶子结点数。**

完全二叉树通常采用数组存储

习题:
例:
设一棵完全二叉树共有699个结点,则在该二叉树中的叶子
多种方法:
1.根据 “二叉树的第 i层至多有 2^(i – 1) 个结点;深度为 k的二叉树至多有
2^k – 1 个结点(根结点的深度为 1)”这个性质:
因为 2^9-1 < 699 < 2^10-1 , 所以这个完全二叉树的深度是 10,前 9层是一个满二叉树,这样的话,前九层的结点就有 2^9-1=511 个;而第九层的结点数是 2^(9-1)=256
所以第十层的叶子结点数是 699-511=188 个;
现在来算第九层的叶子结点个数。
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。因为第十层有 188个,所以应该去掉第九层中的 188/2=94个;
所以,第九层的叶子结点个数是 256-94=162,加上第十层有 188个,最后结果是 350个。
2.根据 n0=n/2,其中n为奇数时(n1=0)向上取整;n为偶数时(n1=1)向下取整。可根据完全二叉树的结点总数计算出叶子结点数得到结果
其他题目:https://wenku.baidu.com/view/988bd3b5ab00b52acfc789eb172ded630b1c98e6.html?re=view

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138160.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 网络文件服务器_文件存储服务器

    网络文件服务器_文件存储服务器网络文件服务器:通过网络共享文件或文件夹,实现数据共享NAS(networkappendstorage)共享的是文件夹1.FTP文件服务器2.samba不同系统间的文件夹或设备共享不用系统

  • FM/FFM

    FM/FFMFM背景及相关算法对比(1)FM(factorizationmachine)是在LR(logisticregression)基础上,加入了特征的二阶组合项;(2)SVM和FM的主要区别在于,SVM的二元特征交叉参数是独立的,如wijw_{ij}wij​,而FM的二元特征交叉参数是两个k维的向量vi、vjv_i、v_jvi​、vj​,即&lt;vi,vj&gt;&lt…

  • 多线程(三)—-线程的启动方式(二)

    多线程(三)—-线程的启动方式(二)

    2020年11月12日
  • Cubieboard2折腾手记(一)「建议收藏」

    Cubieboard2折腾手记(一)「建议收藏」Cubieboard折腾手记  前段时间终于是入手了一块Cubieboad2,板子的参数看着挺不错,全志A20的cpu,1G的RAM,4G的nandflash。本来就是想搞个树莓派来玩的,后来看了看,选了这个CubieBoard2,加上其他的一些配件的,参不多是400软妹币,全志的资料在网上找了下,也是不少的,对linux也算比较友好的。  废话不多说了,拿到板子后当然是装上自己最喜爱

  • 光功率 博科交换机_博科光纤交换机zone划分命令方法「建议收藏」

    光功率 博科交换机_博科光纤交换机zone划分命令方法「建议收藏」博科光纤交换机zone划分命令方法Brocade(博科)交换机为例,记录其划分命令和划分方法:连接交换机:可通过串口或网线从IE进入,默认IP  10.77.77.77,255.255.255.0创建ZONE有两种方式:一是通过交换机port号,二是通过主机和存储的WWN号 (单个硬盘没有WWN号,存储整体才有一个)命令:查看当前zone状况:zoneshow删除zone:zonedele…

  • AJAX(Asynchronous JavaScript And XML)

    AJAX(Asynchronous JavaScript And XML)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号