(今天主要解决了昨天遗留的问题。在上课的论坛上讨论还是很有效的。12.2未结)

 

12.2-1:

 

 

12.2-2:
RECURSIVE-TREE-MINIMUM(X):
	while(x.left != null):
		x = x.left;
	return x;

RECURSIVE-TREE-MAXIMUM(X):
	while(x.right != null):
		x = x.right;
	return x;

12.2-3:
TREE
-PREDECESSOR(x):
if(x.left!=null):
return x.left;
t
= x.parent;
while(x == t.left && t!= null)
x
= t; t = t.parent;
return t;

12.2-5:

If one BST node has two children, then its predecessor is the maximum of its left

sub-tree, and its successor is the minimum of its right sub-tree. The smallest

element has no left child, and the largest one has no right child.

 

 

12.2-6:

Think from node x.

If x don't have a right sub-tree, then its successor is the ancestor where the left

sub-tree is the first to contain x. Therefore, this successor is the lowest ancestor

of x, whose left child is also an ancestor of x.