首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

叶子节点有n个,求平衡二叉树的深度最多是多少?哪位大侠会,跟小弟说说啊解决思路

2013-01-26 
叶子节点有n个,求平衡二叉树的深度最多是多少?哪位大侠会,跟小弟说说啊。。如题叶子节点有n个,求平衡二叉树

叶子节点有n个,求平衡二叉树的深度最多是多少?哪位大侠会,跟小弟说说啊。。
如题
叶子节点有n个,求平衡二叉树的深度最多是多少?
如何求解的??
谢谢了。。。
[解决办法]
一棵树的深度是左右两子树深度的最大值加一
[解决办法]
log2(n)+1=<h<=log2(n)+2
[解决办法]
这样问一下:
一颗x层的平衡二叉树,最少有多少个叶子结点呢?应该满足斐波那契数列:
         f(x)=f(x-1)+f(x-2)   其中f(x)表示x层平衡二叉树最少的叶子个数
  f(1)=1  f(2)=1  f(3)=2  f(4)=3  f(5)=5  f(6)=8 .....

层数 :       1   2   3   4   5   6   7   ...
最少叶子数:  1   1   2   3   5   8   13  ...

比如说:如果有3个叶子结点,我们最多能构造成一颗4层的平衡二叉树。
        如果有5个叶子节点,我们最多可以构造成一颗5层的平衡二叉树。
        如果有3<x<5个叶子结点,应该最多也只能构造成一颗4层的平衡二叉树。

所以,如果有n个叶子结点,我们可以通过估算一下n在斐波那契数列中所处的位置,就应该能知道最多构造几层的平衡二叉树。
            
     
[解决办法]
一个高度为n的二叉平衡树至少有多少个结点?
1.5log(n+1),实际上用斐波纳皆数列推出来的:1,2,4,7,12.即是FN = F(N-1) +F(N-2) +1


反推一下就出来了~~~

热点排行