二叉树的五大性质及证明「建议收藏」

二叉树的五大性质及证明「建议收藏」二叉树(BinaryTree)定义:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。特点:每个结点至多只有两棵子树(二叉树中不存在度大于2的结点)五种形态: 1.性质1性质1 在二叉树的第i层至多有2^(i-1)个结点。(i>=1) [用数学归纳法证明]  …

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

二叉树(Binary Tree)

定义:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。

特点:每个结点至多只有两棵子树(二叉树中不存在度大于2的结点)

五种形态

二叉树的五大性质及证明「建议收藏」

 

1. 性质1

性质1  在二叉树的第 i 层至多有 2^(i -1)个结点。(i>=1)

 

[用数学归纳法证明]

       证明:当i=1时,只有根结点,2^(i -1)=2^0=1。

       1) 设:对所有j,i>j>=1,命题成立,即第j层上至多有2^(j-1)个结点。

       2) 由归纳假设第i-1层上至多有2^(i-2)个结点。

       3) 由于二叉树的每个结点的度至多为2,故在第i层上的最大结点数为第i-1层上的最大结点数的2倍,即2* 2^(i-2)= 2^(i-1) 

证毕。

              

 

2. 性质2

性质2  深度为 k 的二叉树至多有 2^(k-1)个结点(k >=1)。

       证明:由性质1可见,深度为k的二叉树的最大结点数为 

二叉树的五大性质及证明「建议收藏」

 

3. 性质3

性质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. 性质4

性质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. 性质5

性质5  如将一棵有n个结点的完全二叉树自顶向下,同层自左向右连续为结点编号0,1, …, n-1,则有: 

       1)若i = 0, 则 i 无双亲,   若i > 0, 则 i 的双亲为」(i -1)/2」

       2)若2*i+1 < n, 则i 的左子女为 2*i+1,若2*i+2 < n, 则 i 的右子女为2*i+2

       3)若结点编号i为偶数,且i != 0,则左兄弟结点i-1.

       4)若结点编号i为奇数,且i != n-1,则右兄弟结点为i+1.

       5)结点i 所在层次为」log2(i+1) 」

 

 

参考资料:

1. Boss的PPT

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145002.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • shell 或运算_shell 变量运算

    shell 或运算_shell 变量运算shell中多重条件与或运算if[-e/dev/mmcblk0p1]&amp;&amp;[-e/dev/mmcblk0p2]&amp;&amp;[-e/dev/mmcblk0p3];then echo-e"—-&gt;partitionisexisting!" exit0fi参考:Shell脚本IF条件判断和判断条件总结…

    2022年10月9日
    3
  • linux shell 字符串截取_shell截取最后一个字符

    linux shell 字符串截取_shell截取最后一个字符因最近工作中,用到shell脚本,刚开始感觉难度比较大,但在查阅资料后,感觉也没啥难度;后续整理工作中遇到的脚本知识点;现将遇到的问题,整理如下:遇到问题:需要根据关键字,截取其定义的内容;比如截图宏定义的值,或者截取某行中最后一列数据;如下为查阅网络资料后,整理针对该问题,整理字符串截取操作如下:一、字符串截取:1.如题想提取文本中在[]之前的字符,字符与[]之间有空格;比如文本:    TF…

    2022年9月1日
    4
  • vue-property-decorator的简单介绍,一看就会

    vue-property-decorator的简单介绍,一看就会identifier!如果编译器不能够去除null或undefined,你可以使用类型断言手动去除。语法是添加!后缀:identifier!从identifier的类型里去除了null和undefined:functionfixed(name:string|null):string{functionpostfix(epithet:string){…

    2025年8月15日
    4
  • 浅谈md5加密[通俗易懂]

    浅谈md5加密[通俗易懂]md5加密是我们生活中十分常见的加密算法。我是最近在写一个H5的项目时接触到的这个算法,这个算法极大的引起了我的好奇心,是登陆界面,要求是将用户输入的密码使用md5加密之后,再传回服务器,当时我十分不理解原因是什么.废话少说原因密码在前端进行加密,然后服务器使用摘要进行比对,这样在整个密码的校验过程中是在服务器端不知道明码的情况下进行的,极大的保证了密码的安全在避免文件内容被篡改

    2022年7月11日
    14
  • ssh配置命令_ssh config配置

    ssh配置命令_ssh config配置文章目录Linux_day05一.运行模式1.init2.systemd==二.用户与用户组管理==1.用户管理**a.添加用户**(linux中允许一个用户属于多个用户组)·b.修改用户信息c.设置密码d.**删除用户**2.用户组管理a.用户组添加b.用户组修改c.删除用户组三.网络设置扩展:创建快捷方式==四.ssh服务==1.远程终端2.通过ssh进行远程文件互相传输Linux_day05一.运行模式也称运行级别在过去Linux中存在一个进程:init(initialize,初始化);

    2022年8月9日
    2
  • 两个求和符号如何用计算机,计算:两个求和符号∑∑怎么办「建议收藏」

    两个求和符号如何用计算机,计算:两个求和符号∑∑怎么办「建议收藏」先将其中一个未知数当常量,另一个未知数从1至n依次递加后各项式子相加。然后再将另一个未知数从1至n依次递加后各项式子相加便是结果。∑是一个求和符号,汉语名称为西格玛(大写Σ,小写σ)。第十八个希腊字母。在希腊语中,如果一个单字的最末一个字母是小写sigma,要把该字母写成ς,在现代的希腊数字代表6。大写Σ用于数学上的总和符号,比如:∑Pi,其中i=1,2,…,T,即为求P1+P2+…

    2022年10月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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