二叉树的5个重要性质「建议收藏」

二叉树的5个重要性质「建议收藏」1.在二叉树的第i层上最多有2 i-1 个节点。(i>=1) 用归纳法证明:归纳基:i=1层时,只有一个根结点,          2i-1=20=1;归纳假设:假设i=k时,命题成立;归纳证明:二叉树上每个结点至多有两棵子树,则第k+1层的结点数最多为2k-12=2k+1-1。

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

1.在二叉树的第i层上最多有2 i-1 个节点 。(i>=1)

 用归纳法证明:

归纳基:i = 1 层时,只有一个根结点,
                    2i-1 = 20 = 1;

归纳假设:假设i=k时,命题成立;

归纳证明:二叉树上每个结点至多有两棵子树,则
第 k+1 层的结点数 最多为2k-1 x 2 = 2k+1-1 。

2.二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)

 证明:

基于性质1,深度为 k 的二叉树上的结点数至多为
       2^0+2^1+ …..+2^k -1 = 2^k -1 

3.n0=n2+1  n0表示度数为0的节点 n2表示度数为2的节点

    推导过程 根据两个公式

    1. n=n0+n1+n   n表示二叉树中的节点总个数,n1表示度数为1的节点个数

    2.n-1=2n2+n1      通过观察二叉树我们可知,除了根节点之外,其余的任何节点都有一个入口分支,其他节点都有一个入口分支,那么节点的总分支数等于节点个数减一,度数为2的节点有2个出口分支,度数为一的有1个出口分支,度数为0的节点没有出口分支 所以总的分支个数为 2n2+n1

 

4.在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整。

二叉树的5个重要性质「建议收藏」

     推导过程根据性质 2: 假设深度为k 的满二叉树的节点个数一定为2k-1,那么n=2k-1推得满二叉树的度数为k=log2(n+1);

 完全二叉树是具有n个节点的二叉树,若按层序编号那么其编号与同样深度的满二叉树的节点编号在二叉树的位置相同,那么他就是完全二叉树,也就是说他的叶子几点只可能出现在最下边的两层,他的深度等于满二叉的深度,但他的节点一定少于等于满二叉树的节点个数,但一定多与2k-1-1,2k-1-1第度数为k-1层的满二叉树的节点个数,那么n就满足2k-1-1<n<=2k-1,由于n为整数那么n<=2k-1可以推出n<=2,n>2k-1-1可以推出 n>=2k-1,所以2k-1<n<=2k  ,即可得k-1<=log2n<k 而k作为整数因此k=[log2n]+1

设 完全二叉树的深度为 k 

则根据第二条性质得 2k-1 -1<n ≤ 2k -1,即2k-1≤  n < 2k      即   k-1 ≤  log2 n < k 

因为 k 只能是整数,因此, k =[log2n] + 1

5.若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:

(1) 若 i=1,则该结点是二叉树的根,无双亲, 否则,编号为 [i/2] 的结点为其双亲结点;  

(2) 若 2i>n,则该结点无左孩子,  否则,编号为 2i 的结点为其左孩子结点;

(3) 若 2i+1>n,则该结点无右孩子结点,  否则,编号为2i+1 的结点为其右孩子结点。

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

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

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


相关推荐

  • MSYS以及MinGW安装

    MSYS以及MinGW安装MSYS以及MinGW安装文章目录MSYS以及MinGW安装下载并安装MSYS安装基础运行库(glibc,cmake,make等)下载并安装MSYS下载传送门点击下载Windows64bit,双击安装选择安装目录安装完成!!!安装基础运行库(glibc,cmake,make等)$pacman-Syu$pacman-Su$pacman-S–neededbase-develmingw-w64-x86_64-toolchain基础运行库安装完成,现在可以编译Co

    2022年6月16日
    37
  • HDU2602 Bone Collector 【01背包】[通俗易懂]

    HDU2602 Bone Collector 【01背包】

    2022年1月21日
    44
  • Tomcat命令

    Tomcat命令

    2022年4月3日
    77
  • compound extreme_particular conditions

    compound extreme_particular conditions在看SpringSide代码过程中,发现SS使用了extremecomponents于是,今天看了看extremecomponents的使用,发觉extremecomponents真是个好用西。可以直接接受response的数据。按照test例子自己做的:效果不错哟eXtremeTable是一个可扩展的用于以表格的形式来显示数据的一组JSP标签库.网站:http://www.extreme…

    2022年8月20日
    8
  • transparentblt[通俗易懂]

    transparentblt[通俗易懂]透明位图的显示作者:王骏下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt函数的使用TransparentBlt

    2025年8月25日
    3
  • img图片加载出错处理[通俗易懂]

    img图片加载出错处理[通俗易懂]为了美观当网页图片不存在时不显示叉叉图片当在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验。即使使用alt属性给出了”图片XX”的提示信息,也起不了多大作用。其实,可以这样处理:当图片不存在的时候,会触发onerror事件,我们可以在该事件中做一下补救的工作,比如:1、让这个图片元素隐藏:imgsrc=”图片的url地址”

    2022年7月26日
    34

发表回复

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

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