首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找可能的二进制搜索树的数目

查找可能的二进制搜索树的数目
EN

Stack Overflow用户
提问于 2016-05-07 11:14:50
回答 1查看 78关注 0票数 2

假设,我们有钥匙1,2,3,4,5,6,7.我必须找到可能的二进制搜索树的总数,这样二进制搜索树的高度就是6

答案是64。但我无法找到一个模式,从而从数学上推断出答案。用蛮力画出所有可能的树是不可能的。

可能的树的一个简单例子是倾斜的不平衡树,其中键按升序和降序插入。两棵树的高度都是6,但是如何达到的总和64

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-07 11:23:40

这一点可以通过建筑来证明。

让我们说,

F(n) =高度为nn+1数的二叉树数

索赔:F(n) = 2^n

证明:

代码语言:javascript
复制
F(0) = 1 (by construction)  
F(1) = 2 (by construction) 

现在,要计算F(n),那么最小数或最大数都可以是树的根。剩余的n个数字必须排列在左边的子树中(如果最大数是根),或者右边(如果最小的数是根)。

所以,

代码语言:javascript
复制
F(n) = 2*F(n-1)  
F(n) = 2^n
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37087850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档