一、平衡二叉树最少有几个结点?
对于一棵平衡树,如果以NhNh表示深度为h时含有的最少结点数。有如下的规律:
N0=0,N1=1,N2=2;Nh=Nh−1+Nh−2+1
这里研究的是最小结点数,最多结点数自然是满二叉树时的,不必像最少结点这样需要递推分析。
最少结点的情况还可以从平衡因子看:所有非叶结点的平衡因子均为1。可以推论的是,均为-1也是最少结点的情况。
通常会围绕着最少结点,最大深度反复考察这个知识点。比如给定深度问最少需要多少个结点。或者给定结点数问最大能达到多少深度。
因此这个知识点可以形象化为深度是想达成的效果,越大越好,结点数是花费的成本,越小越好。
二、具有n层结点的平衡二叉树至少有几个节点?
至少有12个结点。 分析过程如下: 因为根结点层次为1,则高度为h的平衡二叉树最少有F(h + 2) -1个结点; 其中F 为Fibonacci序列1, 1, 2, 3, 5, 8, 13, 21,...; Fibonacci数列种,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子数的节点数量; 易知F(1)=1,F(2)=2,F(3)=4 ; F(5)=F(4)+F(3)+1=2*F(3)+F(2)+2; 因为F(2)=2,F(3)=4; 故F(5)=2*F(3)+F(2)+2=2*4+2+2=12; 即具有5层结点的平衡二叉树至少有12个结点。 此题利用了平衡二叉树的性质解题。
顶一下
(0)
0%
踩一下
(0)
0%
- 用户反馈
- 问题反馈
-