public object GetData(IComparable key)
{
if(key == null)
throw new ArgumentNullException("Key is null");
int result;
OrderedTreeNode treeNode = rbTree; // begin at root
// traverse tree until node is found
while(treeNode != sentinelNode) {
result = key.CompareTo(treeNode.Key);
if(result == 0) {
lastNodeFound = treeNode;
return treeNode.Data;
}
if(result < 0)
treeNode = treeNode.Left;
else
treeNode = treeNode.Right;
}
return null;
}