二叉树的基本性质及证明

二叉树的基本性质及证明性质1:一棵非空二叉树的第i层上最多有2^(i-1)个结点,(i>=1)。性质2:一棵深度为k的二叉树中,最多具有2^k-1个结点,最少有k个结点。性质3:对于一棵非空的二叉树,度为0的结点(即叶子结点)总比度为1的结点多一个,即叶子结点数为n0,度为2的结点数为n2,则有n0=n2+1。证明:如果n0表示度为0(即叶子结点)的结点数,用n1表示度为1的结点数,n2表示度为2的结点数,

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

性质1:一棵非空二叉树的第i层上最多有2^(i-1)个结点,(i>=1)。

性质2:一棵深度为k的二叉树中,最多具有2^k-1个结点,最少有k个结点。

性质3:对于一棵非空的二叉树,度为0的结点(即叶子结点)总比度为1的结点多一个,即叶子结点数为n0,度为2的结点数为n2,则有n0=n2+1。

证明:如果n0表示度为0(即叶子结点)的结点数,用n1表示度为1的结点数,n2表示度为2的结点数,n表示整个完全二叉树的结点总数,则有n=n0+n1+n2,根据二叉树和树的性质,可知n=n1+2xn2+1(所有结点的度数之和加1等于结点总数),根据两个等式可知n0+n1+n2=n1+2xn2+1,即n2=n0-1,也即n0=n2+1。

性质4:具有n个结点的完全二叉树深度为(log2(n))+1。

证明:根据性质2,深度为k的二叉树,最多有2^k-1个结点,且完全二叉树的定义是与同深度的满二叉树前边的编号相同,即它们的结点总数n位于k层和k-1层的满二叉树容量之间,即2^(k-1)-1< n <=2^k-1之间,或2^(k-1) <= n <2^k,两边同时取对数得,k-1<=log2(n)<k,又因层数为整数,故log2(n)=k-1,即k=log2(n)+1。

性质5:对具有n个结点的完全二叉树,如果按照从上至下和从左至右的顺序对二叉树的所有结点从1开始编号,则对于任意的序号为i的结点有:

如果i>1,那么序号为i的结点的双亲结点序号为i/2;

如果i=1,那么序号为i的结点为根节点,无双亲结点;

如果2i<=n,那么序号为i的结点的左孩子结点序号为2i;

如果2i>n,那么序号为i的结点无左孩子;

如果2i+1<=n,那么序号为i的结点右孩子序号为2i+1;

如果2i+1>n,那么序号为i的结点无右孩子。

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

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

(0)
上一篇 2022年5月31日 下午2:36
下一篇 2022年5月31日 下午2:36


相关推荐

  • Android游戏引擎_开源可视化规则引擎

    Android游戏引擎_开源可视化规则引擎1、AngleAngle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGLES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。最低运行环境要求不详。项目地址:http://code.google.com/p/angle/2、Rokonrokon是一

    2026年1月22日
    3
  • 深度残差网络(ResNet)之ResNet34的实现和个人浅见[通俗易懂]

    深度残差网络(ResNet)之ResNet34的实现和个人浅见[通俗易懂]残差网络是由来自MicrosoftResearch的4位学者提出的卷积神经网络,在2015年的ImageNet大规模视觉识别竞赛(ImageNetLargeScaleVisualRecognitionChallenge,ILSVRC)中获得了图像分类和物体识别的优胜。**残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接(shortcut),缓解了在深度神经网络中增加深度带来的梯度消失问题**。残差网络(ResNet)的网络结构图举例如下:

    2022年10月6日
    4
  • Flash动画制作实例教程

    Flash动画制作实例教程1、该资料见网址:http://www.webjx.com/htmldata/2007-07-26/1185439125.html2、http://www.enet.com.cn/eschool/includes/zhuanti/flash1130/3、http://www.webjx.com/htmldata/2007-10-04/119151291…

    2022年4月30日
    44
  • Java开发手册之日志规约[通俗易懂]

    Java开发手册之日志规约[通俗易懂]Java开发手册之日志规约

    2022年4月22日
    41
  • java视频教程不同阶段看哪些[通俗易懂]

    java视频教程不同阶段看哪些[通俗易懂]第一个阶段(基础阶段)1、你要掌握HTML语言,认为常用的HTML一些标签。我推荐大家学习孙鑫老师视频的《HTML语言速成》2、掌握JAVA基础,也就是J2SE,我推荐大家学习马士兵老师的J2SE视频。当时我学习J2SE主要学习的张孝祥和孙鑫老师的视频(当时还不知道马士兵老师呢!呵呵)不过我认为孙鑫老师前面几讲还是值得初学者看的,…

    2022年5月16日
    36
  • 菜鸟实战UML——状态图

    菜鸟实战UML——状态图状态图状态图 StatechartDi 是描述一个实体基于事件反应的动态行为 显示了该实体如何根据当前所处的状态对不同的事件做出反应 通常我们创建一个 UML 状态图是为了以下的研究目的 研究类 角色 子系统 或组件的复杂行为 理解 状态图其实就是用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移 状态图的图符 状态 转移 起点 终点状态状态

    2025年11月7日
    6

发表回复

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

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