假设我们有密钥 1,2,3,4,5,6,7 。我必须找到可能的二叉搜索树的总数,使得二叉搜索树的高度为6
。
答案是 64 。但我无法找到一种模式,以便在数学上推断出答案。只是通过蛮力抽取所有可能的树木是不可能的。
可能树的一个简单示例是倾斜不平衡树,其中按键按升序和降序插入。两棵树的高度都是6.但是如何达到总和64 ?
答案 0 :(得分:2)
这可以通过施工来证明。
让我们说,
F(n)= n
个数字的高度n+1
的二叉搜索树的数量
声明:F(n) = 2^n
证明:
F(0) = 1 (by construction)
F(1) = 2 (by construction)
现在,要计算F(n),则最小数字或最大数字可以是树的根。剩下的n个数字必须排在左边的子树中(如果最大数字是根),或者右边(如果最小数字是根)
所以,
F(n) = 2*F(n-1)
F(n) = 2^n