从有序和预订构造二进制搜索树

时间:2014-08-13 15:41:37

标签: data-structures binary-search-tree

如何使用以下数据绘制二进制搜索树。

有序: - C, B, D, A, E, G, H, F

预购: - A, B, C, D, E, F, G, H

有没有通用算法?任何人都可以帮我解决这个例子吗?

1 个答案:

答案 0 :(得分:2)

  1. 从预购中,我们可以推断A是树的
  2. 然后从顺序中,我们可以推断C B D形成左子树E G H F形成右子树
  3. 考虑左子树C B D组成:
    1. 从预购中,我们可以推断B是根。然后,从有序开始,我们知道CD分别是左子右子
  4. 考虑右子树E G H F组成:
    1. 从预购中,我们可以推断E是根;并且从有序,G H F属于右子树
    2. 考虑子树 G H F
      1. 预订单告诉我们F是根,我们可以推断G H属于F左子树 }
      2. 考虑G H
        1. 从预购,G是根,H右子
  5. 因此树在下面给出:

           A
          / \
         B   E
        / \   \
       C   D   F
              /
             G
              \
               H