Пример #1
0
 private BinaryNode <T> Remove(T x, BinaryNode <T> root)
 {
     if (root == null)
     {
         throw new NoNullAllowedException("Item does not exist");
     }
     if (x.CompareTo(root.getElement()) < 0)
     {
         root.setLeft(Remove(x, root.getleft()));
     }
     else if (x.CompareTo(root.getElement()) < 0)
     {
         root.setRight(Remove(x, root.getRight()));
     }
     else if (root.getleft() != null && root.getRight() != null)
     {
         root.setElement(FindMin(root.getRight()).getElement());
         root.setRight(RemoveMin(root.getRight()));
     }
     else
     {
         root = (root.getleft() != null) ? root.getleft() : root.getRight();
     }
     return(root);
 }
 public T retrieve()
 {
     if (current == null)
     {
         throw new Exception("Element not found!");
     }
     return(current.getElement());
 }
Пример #3
0
 private T elementAt(BinaryNode <T> t)
 {
     if (t != null)
     {
         return(t.getElement());
     }
     return(default(T));
 }
Пример #4
0
 private BinaryNode <T> Find(T x, BinaryNode <T> root)
 {
     while (root != null)
     {
         if (x.CompareTo(root.getElement()) < 0)
         {
             root = root.getleft();
         }
         else if (x.CompareTo(root.getElement()) > 0)
         {
             root = root.getRight();
         }
         else
         {
             return(root);
         }
     }
     return(null);
 }