Tree n个未标记节点的BST数量

Tree n个未标记节点的BST数量,tree,binary-search-tree,catalan,Tree,Binary Search Tree,Catalan,最近,我在一次采访中被要求告诉n个未标记节点的BST可能的数量。但我无法理解BST中未标记节点的意义,无法正确回答。这个问题的正确答案应该是什么?事实上,当我看到带有未标记节点的BST时,我也会表示我的惊讶。BST只有在节点携带信息时才有意义 我想他们只是指二叉树。对于这个计数问题,您似乎已经通过添加catalan标记回答了这个问题 如果我们称Cn为可以由n个节点组成的二叉树的数目,那么我们可以将问题分解为根的子树的可能性。当所有非根节点都在左子树中时,首先计算树的数量,然后当其中一个节点实际在

最近,我在一次采访中被要求告诉n个未标记节点的BST可能的数量。但我无法理解BST中未标记节点的意义,无法正确回答。这个问题的正确答案应该是什么?

事实上,当我看到带有未标记节点的BST时,我也会表示我的惊讶。BST只有在节点携带信息时才有意义

我想他们只是指二叉树。对于这个计数问题,您似乎已经通过添加
catalan
标记回答了这个问题

如果我们称Cn为可以由n个节点组成的二叉树的数目,那么我们可以将问题分解为根的子树的可能性。当所有非根节点都在左子树中时,首先计算树的数量,然后当其中一个节点实际在右子树中时,…等等,然后合计所有这些计数

  • C0=1
  • Cn+1=∑i=0..nCi Cn-i
。。。这就是给出的递推关系

将其作为递归函数(伪代码)编写并不困难:

使用记忆可以提高效率。

当节点没有信息时,“BST”中的“S”是不相关的。
CountBT(n):
    if n == 0:
        return 1 
    total = 0
    for i = 0 to n:
        total = total + CountBT(i) * CountBT(n - i)
    return total