Write the TREE-PREDECESSOR procedure.
If a node x has a left child, its predecessor is the rightmost node of left sub-tree. Otherwise, the predecessor is the lowest ancestor of x whose right child is an ancestor of x.
TREE-PREDECESSOR(x) if x.left != NIL return TREE-MAXIMUM(x->left) p = x.p while p != NIL and x != p.right x = p p = p.p return p
No comments:
Post a Comment