java – AVL树中的最小节点数?

我知道在AVL树中找到最小节点数的公式是

S(h)= S(h-1)S(h-2)1

但是,我真的不知道如何使用这个函数,比如我们的AVL高度为6.
答案告诉我,最小= 7 4 1 = 12.但你怎么得到这个数字?我的意思是当你插入6不是它(6-1)(6-2)1?

任何人都可以向我解释如何解决这个问题?我的老师还没有谈论这个问题,但我真的想自己弄清楚这一点,以便为下周的测试做好准备.

最佳答案
在S(h)= S(h-1)S(h-2)1中,

S(h)是recursive function/formula.递归函数在其体内调用自身(以更小或更简单的方式).

请注意,递归函数必须具有一些基本情况,在这种情况下:

S(1) = 0
S(2) = 1

那么假设h = 6,则S(h = 6)将(仅替换):

S(6) = S(6-1) + S(6-2) + 1
S(6) = S(5) + S(4) + 1 
S(6) = 2*S(4) + S(3) + 1 + 1
S(6) = 2*(S(3) + S(2) + 1) + S(3) + 2
S(6) = 3*S(3) + 2*S(2) + 4
S(6) = 3*(S(2) + S(1) + 1) + 2*S(2) + 4
S(6) = 5*S(2) + 3*S(1) + 7
S(6) = 5*1 + 3*0 + 7
S(6) = 12

转载注明原文:java – AVL树中的最小节点数? - 代码日志