具有20个节点且元素1,2,3,...,20的二叉搜索树的数目是多少,使得树的根为12,左子树的根为7? a)2634240 b)1243561 c)350016 d)2642640
解释和答案将很有帮助。
我已经应用了加泰罗尼亚语数字公式,但是从选项中得出的结果是不合适的,因此请确保这一点。
答案 0 :(得分:5)
使用Catalan numbers,用n
节点计数完整的二叉树,答案将是d) 2642640
= 14 * 132 *1430。这就是从每个树扩展(子)树的可能性我们未知的子树。
12
/ \
7 (8 nodes)
/ \
(6 nodes) (4 nodes)
更新 :
正如马克·迪金森(Mark Dickinson)在以下评论中所建议的,以澄清:上图中和第一条语句中提到的“节点”是“内部”节点,我们以各种方式对其进行了排列,而{{1} }第一个加泰罗尼亚语编号正在计数具有n
个叶节点的完整二叉树。 Binary trees with l
leaf nodes have l - 1
internal nodes。
答案 1 :(得分:1)
这基本上是希望您为一定数量的节点计算唯一BST的数量。
最后,最终结果将是这些数字的乘积。
如果这是考试,那么您将必须进行乘法。否则,您可以使用-1.0e-05
1.0e-05
1.4e-05
-120000.0
1
1.0
以编程方式解决此问题。
代码:
dynamic programming