合并功能的说明

时间:2014-01-08 08:36:28

标签: merge binary-search-tree pseudocode

我在一些旧考试中看到了一些伪代码,我无法弄清楚它在做什么。

有人可以向我解释一下吗?

A和B是BST。

Foo(A,B)
   if A= NULL
     return B
   if B != NULL
      if value[A] > value[B]
           return Foo(B,A)
      left[B] <- Foo(right[A],left[B])
      right[A] <- B
   return A

1 个答案:

答案 0 :(得分:1)

这是二叉搜索树合并例程。如果AB为空(表示空树),则返回另一个。否则,它确保A的根小于B的根;如果根的顺序错误,则使用交换的参数进行递归。然后,它递归地合并A的右子树和B的左子树,并将结果作为B的左子树附加。最后,它将B附加为A的新右子树并返回A