我拥有的AVL树的定义是:
“二叉搜索树T中顶点x的平衡因子是x的左子树和右子树的高度之差。
如果二进制树T的每个向量的平衡因子是0,-1或1,则称为AVL树。“
我需要找到一个用于计算高度为N的AVL树数量的回归函数。我知道解决方案是:
V[i] = V[i-1]^2 + 2V[i-1]*V[i-2]
V[0] = 1
V[1] = 3
V[2] = 15
有人可以解释一下吗?我完全迷失了。
答案 0 :(得分:0)
感谢n.m.的评论。
答案如下: v [i] = v [i-1] v [i-1] + v [i-1] v [i-2] + v [i-2] v [i-1]
第一个组件是两个子树具有相同高度(0)的位置,第二个组件是左侧树高度较大(1)的地方,第三个组件是右侧树高度较大的地方(-1)。