二叉树性质的性质及证明整理

二叉树性质的性质及证明整理——整理于2020.4.29二叉树的性质及证明性质1:在二叉树的第i层上至多有2(i-1)个结点(i>=1)证明:数学归纳法(1) i=1时只有一个根节点。显然2(i-1)=20=1是对的(2) 假设对所有的j,1<=j<i,命题成立,即第j层上至多有2(j-1)个结点(3)由归纳假设可得:第i-1层上至多有2(i-2)个结点。由于二叉树…

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

——整理于2020.4.29

二叉树的性质及证明

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

证明:数学归纳法
(1) i=1时只有一个根节点。显然 2(i-1)= 20= 1是对的
(2) 假设对所有的 j, 1<= j <i, 命题成立,即第j层上至多有2(j-1)个结点
(3) 由归纳假设可得: 第i-1层上至多有2(i-2)个结点。由于二叉树的每个结点的度数至多为2,所以在第i层上的结点数最多为i-1层上的两倍,即2*2(i-2)=2(i-1),即得出第i层上结点数至多为2(i-1)

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

证明:等比数列求和( Sn=a1(1-qn) / 1-q )
由性质一( 在二叉树的第i层上至多有2(i-1)个结点(i>=1) )可知,深度为k的二叉树的最大结点数为:
在这里插入图片描述

性质3:对任何一棵二叉树T, 如果其终端结点(叶子结点)数为 n0, 度数为2的结点数为 n2, 则n0=n2+1

证明:
设n1为二叉树T中度数为1的结点数,n为二叉树结点总数,则有:
n=n0+n1+n2
又因为二叉树中除根节点外每一个结点都对应一个分支,则分支数B=n-1,
由于这些分支是由度为一和二的结点射出的,所以有B=n1+2*n2,所以有:
n=n1+2*n2+1 ②
联立①②可得 n0=n2+1

完全二叉树的两个重要性质

性质4: 具有n个结点的完全二叉树的深度为 ⌊log2n⌋+1
注:⌊x⌋表示不大于x的最大整数

证明:假设完全二叉树的深度为k,则根据性质2和完全二叉树的定义有
2(k-1) -1 < n <= 2k -1
由于n为整数,上式可变为:
2(k-1) <= n < 2k
两边同时取对数得:
k-1 <= log2n < k
因k为整数,即得k= ⌊log2n⌋+1

性质5:
如果对一颗有n个结点得完全二叉树(其深度为⌊log2n⌋ +1)得结点按层序编号(从第1层到第⌊log2n⌋ +1层,每层从左到右),对任一结点 i (1<= i <= n)有:
1.如果 i =1,则结点 i 是二叉树得根,无双亲;如果 i>1,则其双亲是结点⌊i/2⌋
2.如果 2i > n,则结点 i 无左孩子(结点 i 为叶子结点); 否则其左孩子是结点 2i
3.如果 2i+1 > n,则结点 i 无右孩子; 否则其右孩子是结点2i+1

证明:(暂时简单说明,有空再补)
参考大话数据结构/北京大学出版社/程杰
/图片来自大话数据结构/北京大学出版社

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

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

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


相关推荐

  • 构建增强现实移动应用程序的六款顶级工具

    构建增强现实移动应用程序的六款顶级工具

    2021年6月6日
    122
  • HTML iframe 标签[通俗易懂]

    HTML iframe 标签[通俗易懂]定义和用法iframe元素会创建包含另外一个文档的内联框架(即行内框架)把需要的文本放置在和之间,这样就可以应对无法理解iframe的浏IFrame对象IFrame对象代表一个HTML的内联框架在HTML文档中每出现一次,一个IFrame对象就会被创建。属性frameborder=1或0规定是否显示边框height=pixels或%…

    2025年7月8日
    0
  • autoconf 英文手册

    autoconf 英文手册1IntroductionAphysicist,anengineer,andacomputerscientistwerediscussingthenatureofGod.“SurelyaPhysicist,”saidthephysicist,“becauseearlyintheCreation,GodmadeLight;and…

    2022年6月4日
    31
  • Degenerate_generate动词

    Degenerate_generate动词22. Generate Parentheses C++回溯法

    2022年4月20日
    49
  • jdk8 hashmap线程安全吗_Python中的线程

    jdk8 hashmap线程安全吗_Python中的线程前言只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程不安全的呢,之前面试的时候也遇到到这样的问题,但是当时只停留在***知道是***的层面上,并没有深入理解***为什么是***。于是今天重温一个HashMap线程不安全的这个问题。首先需要强调一点,HashMap的线程不安全体现在会造成死循环、数据丢…

    2022年10月11日
    0
  • esn是什么意思_IMEI MEID

    esn是什么意思_IMEI MEIDESN(ElectronicSerialNumbers):电子序列号。在CDMA系统中,是鉴别一个物理硬件设备唯一的标识。也就是说每个手机都用这个唯一的ID来鉴别自己,就跟人的身份证一样。一个ESN有32bits,也就是32/8=4bytes。随着CDMA移动设别的增多,ESN已经不够用了,所以推出了位数更多的MEID。ESN用8位的16进制来表示,如0x801EA066。…

    2022年8月30日
    0

发表回复

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

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