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

二叉树的五大性质及证明「建议收藏」二叉树(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解自动编码器(AE)

    详解自动编码器(AE)自动编码器(Auto-Encoders,AE)降噪自编码(DenoisingAuto-Encoders,DAE)(2008)堆叠降燥自动编码器(StackedDenoisingAuto-Encoders,SAE)(2008)卷积自动编码器(ConvolutionAuto-Encoders,CAE)(2011)变分自动编码器(VariationalAuto-Encoders,VAE)(Kingma,2014)

    2022年5月1日
  • 15种手机游戏引擎和开发工具介绍

    15种手机游戏引擎和开发工具介绍工欲善其事,必先利其器。对移动游戏开发者来说,高效实用的开发工具必不可少。近日,英国著名产业杂志《Develop》刊出了一篇文章,作者艾伦·李在文中推荐了15种移动游戏开发工具,从游戏引擎,到音效制作、推广等工具都有涉及。以下为原文主要内容编译。引擎和移动开发工具包Marmalade简介:Marmalade被很多人认为是跨平台制作C++游戏的最佳平台。通过MarmaladeSDK,开发者可以在单一的Marmalade项目文件夹中打开Xcode或VisualStudio,将

    2022年5月22日
  • WINDOWS 1.0模拟器_modelsim激活成功教程版安装教程

    WINDOWS 1.0模拟器_modelsim激活成功教程版安装教程本教程包括软件下载、激活成功教程文件下载、安装激活成功教程方法,助你一次成功。 软件安装好了却不能用,想必大家都有过这样的痛苦和无奈。这款软件的激活成功教程花了我整整一个下午的时间,期间在网上找了各种方法尝试均以失

    2022年8月3日
  • 树莓派 1602A显示屏[通俗易懂]

    树莓派 1602A显示屏[通俗易懂]树莓派1602A显示屏下面代码本人测试过没有问题,开始运行完屏幕上什么也没有显示出来,后来调整了下电位器可以了,所以大家如果按着下面的做出来之后运行什么也没有显示的话,记得调整下电位器[img]http://dl2.iteye.com/upload/attachment/0128/7783/cefa073e-97ee-3d45-bddf-d7a878c232a1.png[/img…

    2022年9月22日
  • 阿里云服务器怎么开放端口_云服务器开启端口

    阿里云服务器怎么开放端口_云服务器开启端口阿里云服务器如何开放端口,这里我将开放8082端口,我们来看下吧方法/步骤 登录阿里云服务器并进入控制台,点击【云服务器ECS】。 在【云服务器ECS】点击【实例】并跳转到实例列表。 在实例列表找到要开放端口的云服务器实例。并点击后面的【更多】–》【网络和安全组】–》【安全组配置】。 在【本实例安全组】内点击【配置规则】打开【安全组规则】。这里有出\入的方向,这里我开放的是8082端口,属于入方向的。在这里可以新增规则,这里为了方便直接对已有的规

    2022年10月2日
  • @pytest.mark.parametrize_pytest参数化可变参数

    @pytest.mark.parametrize_pytest参数化可变参数前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

    2022年7月31日

发表回复

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

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