设f(n)为高度为n的平衡二叉树最少含有的节点数,则:f(1) = 1;f(2) = 2; f(3) = 4;f(4) = 7;……

这些可以通过画图就能得到,但是当n很大时呢?其实有如下结论:f(n) = f(n-1) + f(n-2) +1,(n>=3)。这个递推结论如何得到的呢?

引导问题:求一棵二叉树的节点数目:

假设一颗二叉树T,其左右子树分别为TL,TR。又假设T的节点数目为F(T),TL,TR的节点数目分别为F(TL),F(TR)。则显然:

F(T) = F(TL) + F(TR) + 1。

本文的问题:求高度为n的平衡二叉树最小需要多少节点:

同样假设T为高度为n的平衡二叉树,其需要最少的节点数目为F(n)。又假设TL,TR为T的左右子树,因此TL,TR也为平衡二叉树。假设F1,F2为TL,TR的最少节点数,则,F(n) = F1+F2 +1。那么F1,F2 到底等于多少呢?由于TL,TR与T一样是平衡二叉树,又由于我们知道T的最少节点数是F(n),其中n为T的高度,因此如果我们知道TL,TR的高度就可以知道F1,F2的值了。由平衡二叉树的定义可以知道,TL和TR的高度要么相同,要么相差1,而当TL与TR高度相同(即:都等于n-1)时,我们算出来的F(n)并不能保证最小,因此只有当TL与TR高度相差一(即:一个高度为n-1,一个高度为n-2)时,计算出来的F(n)才能最小。此时我们假设TL比TR高度要高1(即:TL高度为n-1,TR高度为n-2),则有:F1 = F(n-1),F2 = F(n-2)。因此得到结论:F(n) = F(n-1) + F(n -2 ) + 1!
又有结论:深度为h的平衡二叉树的最少节点数N=F(h+2)-1;
F(n)为斐波那契数列,
高度范围:F(h+2)-1<=n

平衡二叉树节点跟高度的关系相关推荐

  1. 数据结构----二叉树叶子结点到根节点的高度计算

    数据结构----二叉树叶子结点到根节点的高度计算 代码: #include<stdio.h> #include<stdlib.h> typedef struct bstTree ...

  2. 利用Neo4j的Java驱动获取节点的所有直接关系

    利用Neo4j的Java驱动获取节点的所有直接关系 简单介绍 直接上代码 注解 总结 简单介绍 笔者利用Neo4j的Java驱动获取节点的所有直接关系,主要逻辑就是使用驱动查询Neo4j,遍历返回结果 ...

  3. jspdf-html2canvas 自动分页 网页导出pdf 自动根据dom子节点的高度进行分页,避免dom的内容在分页的时候被截断

    jspdf-html2canvas 网页导出pdf 自动根据dom子节点的高度进行分页,避免dom的内容在分页的时候被截断 说明 直接上代码 说明 要导出的内容用 .pdf 包裹 ,默认会以.pdf的 ...

  4. Spring-Boot +Neo4j+实现节点的创建和关系的添加【玩转neo4j】

    我们先来看下neo4j的三种连接方式 打开neo4j的配置文件 总过有三种连接方式 常用的有两种,一种是http的连接方式[端口:7474],一种是Bolt的连接方式[端口:7687] http的连接 ...

  5. py2neo 创建关系_py2neo在已有节点上批量创建关系

    py2neo创建关系方法 py2neo官方给出的创建关系方法如下: from py2neo.data import Node, Relationship, Graph graph = Graph(&q ...

  6. LeetCode 110. 平衡二叉树(二叉树高度)

    1. 题目 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,n ...

  7. 设置linearlayout最大高度_技术案例 | 排烟口个数与挡烟垂壁高度的关系探讨

    随着<建筑防烟排烟系统技术标准>( 以下简称新规范) 的正式实施,新规范对排烟系统的设计提出了完全不同的设计理念. 根据新规范正文: 当建筑空间净高不大于6m时,每个防烟分区的排烟量应按不 ...

  8. 二叉树节点和度的关系及特点

     写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞加收藏呦.感激不尽!如有错误也请留言指正 目录 一.完全二叉树 节点总数的特点 二.二叉树 度的特点 1.n0与n2的关系 2.节点总数和 ...

  9. Unity3D深入浅出 -组件与节点之间的调用关系

    一.transform组件用途 1.维护场景树 2.对3D物体的平移,缩放,旋转 二.场景树定义 在Hierarchy视图中显示的: 一个game_scene场景,下面有Main Camera节点,D ...

最新文章

  1. php7 实战 新闻类,楼+之PHP7实战第1期
  2. 贪婪算法、递归计算、动态规划背包问题
  3. PCANet --- 用于图像分类的深度学习基准
  4. Java通过几种经典的算法来实现数组排序
  5. CDC之CreateCompatibleDC与BitBlt
  6. sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移
  7. Codevs 2296 仪仗队 2008年省队选拔赛山东
  8. Gmail的另类浏览法--RSS
  9. C# 用委托实现Callback
  10. 谁适合做Scrum Master?
  11. C语言的数据类型→浮点型数据
  12. 斐讯K1S路由器刷华硕固件教程
  13. 红颜本无心 奈何为祸水
  14. python提取图片中的文字
  15. 【苹果相册推】软件安装ipv6得到可由Apple使用ArrayList tmpMacList
  16. python画三角形并涂色_如何用python画叠加三角形?
  17. 微信浏览器调起来扫一扫和问题总结
  18. jmeter后置处理器JSON Extractor
  19. python读音有道-Python 20行简单实现有道在线翻译的详解
  20. 线性递推数列_学习笔记

热门文章

  1. Mycat的简单使用(一)【初了解】
  2. 2018微策略用户峰会北京站举行 企业级BI魅力无处不
  3. 九年级物理测试软件,九年级物理解读人教版
  4. Android 移动记账管理系统
  5. R语言——拍拍贷利率数据分析
  6. cesium动态绘制圆,矩形,自定义区域
  7. Esri发布新的2050年全球土地覆盖预测地图
  8. 模拟DNF放技能的蓝耗问题(洛谷P2006题题解,Java语言描述)
  9. LaTeX/CTeX教程
  10. thinkphp fastadmin 解决vue前后端分离项目的跨域问题 以及 OPTIONS请求类型