我知道N个不同节点可能的不同BST总数由加泰罗尼亚语公式给出。 在SO中描述了in this question。
但我们怎样才能用它来找到所有低于或等于n个节点的BST(N个不同的节点)?
例如
对于N = 3
Possible numbers of BST's are 14.
9 Shown in Picture below for less than 3.
5 for N=3 which can be obtained from Catalan formula.
解决方法是什么? 我只需要算法解释。
答案 0 :(得分:0)
数学公式应为:
summation ( C(n,i) * Catalan(i) ) {i = 1 to n}
Where C(n,i) = n! / ( i! * (n-i)! )
您可以i
方式从可能的n
个节点中选择C(n,i)
个节点。选择那些i
个节点后,以Catalan(i)
个方式形成BST。