平衡二叉树节点跟高度的关系
设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
平衡二叉树节点跟高度的关系相关推荐
- 数据结构----二叉树叶子结点到根节点的高度计算
数据结构----二叉树叶子结点到根节点的高度计算 代码: #include<stdio.h> #include<stdlib.h> typedef struct bstTree ...
- 利用Neo4j的Java驱动获取节点的所有直接关系
利用Neo4j的Java驱动获取节点的所有直接关系 简单介绍 直接上代码 注解 总结 简单介绍 笔者利用Neo4j的Java驱动获取节点的所有直接关系,主要逻辑就是使用驱动查询Neo4j,遍历返回结果 ...
- jspdf-html2canvas 自动分页 网页导出pdf 自动根据dom子节点的高度进行分页,避免dom的内容在分页的时候被截断
jspdf-html2canvas 网页导出pdf 自动根据dom子节点的高度进行分页,避免dom的内容在分页的时候被截断 说明 直接上代码 说明 要导出的内容用 .pdf 包裹 ,默认会以.pdf的 ...
- Spring-Boot +Neo4j+实现节点的创建和关系的添加【玩转neo4j】
我们先来看下neo4j的三种连接方式 打开neo4j的配置文件 总过有三种连接方式 常用的有两种,一种是http的连接方式[端口:7474],一种是Bolt的连接方式[端口:7687] http的连接 ...
- py2neo 创建关系_py2neo在已有节点上批量创建关系
py2neo创建关系方法 py2neo官方给出的创建关系方法如下: from py2neo.data import Node, Relationship, Graph graph = Graph(&q ...
- LeetCode 110. 平衡二叉树(二叉树高度)
1. 题目 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,n ...
- 设置linearlayout最大高度_技术案例 | 排烟口个数与挡烟垂壁高度的关系探讨
随着<建筑防烟排烟系统技术标准>( 以下简称新规范) 的正式实施,新规范对排烟系统的设计提出了完全不同的设计理念. 根据新规范正文: 当建筑空间净高不大于6m时,每个防烟分区的排烟量应按不 ...
- 二叉树节点和度的关系及特点
写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞加收藏呦.感激不尽!如有错误也请留言指正 目录 一.完全二叉树 节点总数的特点 二.二叉树 度的特点 1.n0与n2的关系 2.节点总数和 ...
- Unity3D深入浅出 -组件与节点之间的调用关系
一.transform组件用途 1.维护场景树 2.对3D物体的平移,缩放,旋转 二.场景树定义 在Hierarchy视图中显示的: 一个game_scene场景,下面有Main Camera节点,D ...
最新文章
- php7 实战 新闻类,楼+之PHP7实战第1期
- 贪婪算法、递归计算、动态规划背包问题
- PCANet --- 用于图像分类的深度学习基准
- Java通过几种经典的算法来实现数组排序
- CDC之CreateCompatibleDC与BitBlt
- sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移
- Codevs 2296 仪仗队 2008年省队选拔赛山东
- Gmail的另类浏览法--RSS
- C# 用委托实现Callback
- 谁适合做Scrum Master?
- C语言的数据类型→浮点型数据
- 斐讯K1S路由器刷华硕固件教程
- 红颜本无心 奈何为祸水
- python提取图片中的文字
- 【苹果相册推】软件安装ipv6得到可由Apple使用ArrayList tmpMacList
- python画三角形并涂色_如何用python画叠加三角形?
- 微信浏览器调起来扫一扫和问题总结
- jmeter后置处理器JSON Extractor
- python读音有道-Python 20行简单实现有道在线翻译的详解
- 线性递推数列_学习笔记