public void Remove(IComparable key)
{
if(key == null)
throw new ArgumentNullException("Key is null");
// find node
int result;
OrderedTreeNode node;
// see if node to be deleted was the last one found
result = key.CompareTo(lastNodeFound.Key);
if(result == 0)
node = lastNodeFound;
else {
// not found, must search
node = rbTree;
while(node != sentinelNode) {
result = key.CompareTo(node.Key);
if(result == 0)
break;
if(result < 0)
node = node.Left;
else
node = node.Right;
}
if(node == sentinelNode)
return; // key not found
}
Delete(node);
intCount = intCount - 1;
}