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; }
public AvlTree() { this.root = null; }