private void Move(int left, int right)
 {
     if (Node.Neighbours[right] != null)
     {
         Node = Node.Neighbours[right];
         while (Node.Neighbours[left] != null)
         {
             Node = Node.Neighbours[left];
         }
     }
     else
     {
         while (Node.Parent != null && Node.Parent.Neighbours[right] == Node)
         {
             Node = Node.Parent;
         }
         if (Node.Parent == null) // Make this better
         {
             Node = null;
             return;
         }
         Node = Node.Parent;
     }
 }
 public static int GetHeight(AvlNode <T> node)
 {
     return(node == null ? 0 : node.height);
 }
 public static int GetSize(AvlNode <T> node)
 {
     return(node == null ? 0 : node.size);
 }
 internal AvlTreeIterator(AvlNode <T> node)
 {
     this.Node = node;
 }
Ejemplo n.º 5
0
 public AvlTree()
 {
     this.root = null;
 }