【问题标题】:No of BST possible with n unlabelled nodes没有 n 个未标记节点的 BST 可能
【发布时间】:2020-09-16 09:10:34
【问题描述】:

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

【问题讨论】:

  • 当节点没有信息时,“BST”中的“S”是无关紧要的。

标签: tree binary-search-tree catalan


【解决方案1】:

确实,当我看到带有未标记节点的 BST 时,我也会感到惊讶。 BST 仅在节点携带信息时才有意义。

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

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

  • C0 = 1
  • Cn+1 = ∑i=0..nCi Cni

...这正是Catalan numbers 给出的递归关系。

而且把它写成递归函数(伪代码)也不难:

CountBT(n):
    if n == 0:
        return 1 
    total = 0
    for i = 0 to n:
        total = total + CountBT(i) * CountBT(n - i)
    return total

使用记忆可以提高效率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多