internal virtual Tree GetParent(Tree node)
 {
     if (node is IHasParent)
     {
         return(node.Parent());
     }
     if (nodesToParents == null)
     {
         nodesToParents = new IdentityHashMap <Tree, Tree>();
     }
     if (nodesToParents.IsEmpty())
     {
         FillNodesToParents(root, null);
     }
     return(nodesToParents[node]);
 }
 /// <summary>Returns <code>true</code> if this set contains no elements.</summary>
 /// <returns><code>true</code> if this set contains no elements.</returns>
 public override bool IsEmpty()
 {
     return(map.IsEmpty());
 }