3元素二叉搜索树

时间:2011-04-01 10:31:37

标签: data-structures binary-search-tree

我正在为我的高级编程课程编写过去的考试试卷,但我已经陷入了这个问题

  

二叉搜索树中的值必须满足哪些属性?有多少个不同的二叉搜索树包含三个值1 2 3?解释你的答案。

我可以很容易地回答第一部分,但第二部分,关于可能的树木的数量让我难过。我的第一直觉是说只有一棵树可能,以2为根,因为定义是这样的,但这个问题是整篇论文中总共100分中的8分,所以我我只能假设它是一个技巧问题,并且有一个更微妙的解释,但是在讲义中没有任何内容可以解释这一点。有谁知道该回答这个问题的人?

4 个答案:

答案 0 :(得分:3)

问题并不是说树是平衡的,所以想想1或3是否可以在根节点。

答案 1 :(得分:2)

尝试考虑具有这三个节点的所有可能的二叉树。有多少树满足二叉搜索树的属性?

答案 2 :(得分:1)

我认为一个技巧是树可以是退化的(有效地,链接的元素列表):

1
 \
  2
   \
    3

及其变化。

此外,这些树被认为是相同的吗?

  2        2
 / \      / \
3   1    1   3

答案 3 :(得分:1)

如果我没记错的话,树的根不一定是“中间元素”。因此,还有一些树的组合:

    2
1        3
or
1
    2
        3
or
1    
        3
    2
or
        3
    2
1
or
        3
1
    2

也许我忘了一些,但我想你会明白的。仅仅是为了我的符号:Newline遇到了树,在上面的左边和右边显示它的父节点是右还是左;)