public IComparable GetMinKey()
{
OrderedTreeNode treeNode = rbTree;
if(treeNode == null || treeNode == sentinelNode)
throw(new InvalidOperationException("Tree is empty"));
// traverse to the extreme left to find the smallest key
while(treeNode.Left != sentinelNode)
treeNode = treeNode.Left;
lastNodeFound = treeNode;
return treeNode.Key;
}