我在教科书中找到了这个算法,但我不确定我是否理解它。
TRANSPLANT(T,u,v){
1 if u.p == NIL
2 T.root = v
3 else if u == u.p.left
4 u.p.left=v
5 else u.p.right == v
6 if v != NIL
7 v.p=u.p
}
另外,您认为p
节点内部是什么?
为什么他不能只将节点与节点进行比较?
课本笔记:
为了在二叉搜索树中移动子树,我们定义了一个子例程
TRANSPLANT
,它将一个子树作为其父级的子树替换为另一棵子树。当用以 node 为根TRANSPLANT
的子树替换以 nodeu
为根的子树时, nodeu
的父级将成为 node 的父级,并且u
' 的父级最终具有其适当的子级。