关于插入空二进制搜索树的考试问题

时间:2011-06-26 12:20:38

标签: binary-search-tree

我无法解释有关将元素插入二叉搜索树的特定问题。我熟悉预订,后序和顺序遍历,但我不熟悉以下问题:

  

假设我们按顺序将元素3,5,6,1,2,4,7插入到最初为空的二叉搜索树中。

如果我只给出了一组按顺序插入的数字,我该如何将它变成二进制搜索树? 3会成为根吗?我会自己平衡其他数字到正确的子树吗?在这种情况下难道不会有很多解释吗?是否遵循某种惯例?

感谢。

3 个答案:

答案 0 :(得分:4)

向树中添加项目时,不会重新排序现有树。新项目仅添加到叶节点。这意味着当您第一次添加3时,3将是结果的根节点。当你添加5时,它将在3的右边,等等。这导致以下树:

   3
 /   \
1     5
 \   / \
  2 4   6
         \
          7

答案 1 :(得分:2)

如果没有关于如何平衡树的规则的任何进一步信息,我将不得不假设它指的是一个“天真的”不平衡树。

所以这个:

         3
  /-----/ \-----\
 1               5
  \--\       /--/ \--\
      2     4         6
                       \-\
                          7

答案 2 :(得分:1)

是的,3将是根,因为在第一次插入后,整个树只有一个元素。保持相同的逻辑,如果(数字,左,右)代表您得到的节点:

  1. (3 ,,)

  2. (3 ,,(5 ,,))

  3. (3 ,,(5 ,,(6 ,,)))

  4. (3,(1 ,,),(,, 5(6 ,,)))

  5. (3,(1,,2),(5 ,,(6 ,,)))

  6. (3,(1,,2),(5,(4 ,,),(6,,)))

  7. (3,(1,,2),(5,(4 ,,),(6,7)))