Merge 合并功能说明
我在一些旧的考试中看到了一些伪代码,我真的不知道它在做什么 谁能给我解释一下吗 A和B是BST的Merge 合并功能说明,merge,binary-search-tree,pseudocode,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 Foo(A,B) 如果
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
Foo(A,B)
如果A=NULL
返回B
如果B!=无效的
如果值[A]>值[B]
返回Foo(B,A)
左[B]这是一个二进制搜索树合并例程。如果A
或B
为null(表示空树),则返回另一个。否则,它将确保A
的根小于B
的根;如果根的顺序不正确,它将在交换参数的情况下递归。然后,它递归地合并A
的右子树和B
的左子树,并将结果附加为B
的左子树。最后,它附加B
作为A
的新的右子树,并返回A
你在哪里看到的?这只是我大学的一次考试。我试图弄明白这是怎么回事,但我不知道该写什么。