二叉树性质总结

二叉树性质总结性质1:二叉树第i(i>=1)层上的节点数最多为2^(i-1)证明:归纳基础:第一层有一个节点,第二层最多有两个节点,第三层最多有四个节点,以此类推,数学归纳法证明如下:i=1时,2^(i-1)=2^0=1,因为第一层上为根节点,所以命题成立。归纳假设:假设对所有的j(1归纳步骤:根据归纳假设,第i-1层上至多有2(i-2)个节点,由于二叉树每个节点至多有两个孩子节点,所以第i

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

性质1:二叉树第i(i>=1)层上的节点数最多为2^(i-1)

证明:

归纳基础:第一层有一个节点,第二层最多有两个节点,第三层最多有四个节点,以此类推,数学归纳法证明如下:

i=1时,2^(i-1)=2^0=1,因为第一层上为根节点,所以命题成立。

归纳假设:假设对所有的j(1<=j<i)命题成立,即第j层上至多有2^(j-1)个节点,需要证明j=i时命题依然成立。

归纳步骤:根据归纳假设,第i-1层上至多有2(i-2)个节点,由于二叉树每个节点至多有两个孩子节点,所以第i层上的最多节点数是第i-1层上最多节点数的2倍,即j=i时,该层上最多有2^(i-2)*2=2^(i-1)个节点,因此命题成立。

性质2:高度为k的二叉树最多有2^k – 1个节点。

性质2可以根据性质1证明,即SUM(2^(i-1))(1<=i<=k)  =  2^k – 1(等比数列求和)

性质3:对于任何二叉树T,n0、n1、 n2分别代表度数为0、1、2的节点个数,则n0=n2+1

证明:因为二叉树所有节点的度数均不大于2,所以节点总数(记为n)应该等于0度节点数、1度节点数、2度节点数之和,即n0+n1+n2=n;

1度节点有一个儿子,2度节点有两个儿子,所以二叉树中所有儿子节点的个数是n1+n2,二叉树中只有根节点不是任何节点的儿子节点,因此二叉树中节点总数可以表示为n=n1+2n2+1

有上述两个公式n0+n1+n2=n、n=n1+2n2+1可得:n0=n2+1

性质4:具有n个节点的完全二叉树(包括满二叉树)的高度为[logn]+1(不做特殊说明这里的log都是以2为底的)

证明:设所求完全二叉树的深度为k,有完全二叉树的定义可知,其前k-1层是深度为k-1的满二叉树,一共有2^(k-1)-1个节点,由于完全二叉树深度为k,故第k蹭上还有若干节点,因此该完全二叉树的节点个数n>2^(k-1)-1。由性质2可知n<=2^k – 1,所以

2^(k-1) – 1< n <= 2^k-1

由此推导可得2^(k-1) <= n < 2^k,取对数后有

k-1 <= logn < k

因为k为整数,所以有k-1=logn,即可得k=[logn]+1

二叉树还具有其他性质,读者有兴趣可以自己推导得出,对以上四种性质比较常用,并且对于性质4在研究二叉树时间复杂度的时候可能会有所帮助理解nlogn这种时间复杂度的来源。

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

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

(0)
上一篇 2022年5月6日 下午5:40
下一篇 2022年5月6日 下午5:40


相关推荐

  • n8n打造SQL智能支付数据查询助手全流程实战

    n8n打造SQL智能支付数据查询助手全流程实战

    2026年3月15日
    2
  • 能关闭一切进程的无敌命令

    能关闭一切进程的无敌命令

    2021年7月29日
    358
  • vscode高效开发方案【护眼绿主题,插件,和控制台】研究

    vscode高效开发方案【护眼绿主题,插件,和控制台】研究最近写代码太累,眼睛疲劳,修改写主题配色插件安装参考文章大前端插件集合配置主题启动vscode把下面的代码放在配置中”workbench.colorCustomizations”:{“foreground”:”#519657″,”editor.background”:”#c8e6c9″,”editor.lineHighlig…

    2022年5月10日
    131
  • OHEM 笔记

    OHEM 笔记说明1.本文是博主的学习记录,主要为了方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正2.本文重点是了解OHEM算法以及它与hardnegativemining的异同点,尽量用较少篇幅表达清楚论文整体思路,其他一些不影响理解论文算法的东西有需要的请查看其他博客3.论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考,看本文的过程中如对一些名词有疑惑可以直接点击参考…

    2022年5月7日
    39
  • 分类模型 第1篇:分类模型概述[通俗易懂]

    分类模型 第1篇:分类模型概述[通俗易懂]机器学习主要用于解决分类、回归和聚类问题,分类属于监督学习算法,是指根据已有的数据和标签(分类的类别)进行学习,预测未知数据的标签。分类问题的目标是预测数据的类别标签(classlabel),可以把

    2022年8月2日
    8
  • mysql的数据库实例名是啥_数据库名、数据库实例名与数据库域名

    mysql的数据库实例名是啥_数据库名、数据库实例名与数据库域名欢迎进入 Oracle 社区论坛 与 200 万技术人员互动交流 gt gt 进入数据库名 数据库实例名与数据库域名一 数据库名什么是数据库名 数据库名就是一个数据库的标识 就像人的身份证号一样 他用参数 DB NAME 表示 如果一台机器上装了多全数据库 那么每一个数据库欢迎进入 Oracle 社区论坛 与 200 万技术人员互动交流 gt gt 进入数据库名 数据库实例名与数据库域名一 数据库名

    2026年3月26日
    2

发表回复

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

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