我正在为我的高级编程课程编写过去的考试试卷,但我已经陷入了这个问题
二叉搜索树中的值必须满足哪些属性?有多少个不同的二叉搜索树包含三个值1 2 3?解释你的答案。
我可以很容易地回答第一部分,但第二部分,关于可能的树木的数量让我难过。我的第一直觉是说只有一棵树可能,以2
为根,因为定义是这样的,但这个问题是整篇论文中总共100分中的8分,所以我我只能假设它是一个技巧问题,并且有一个更微妙的解释,但是在讲义中没有任何内容可以解释这一点。有谁知道该回答这个问题的人?
答案 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遇到了树,在上面的左边和右边显示它的父节点是右还是左;)