Advertisement
kimo12

Untitled

Mar 23rd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.23 KB | None | 0 0
  1.    @Override
  2.     public void insert(T key) {
  3.         Node<T> cursor = null; // y
  4.         Node<T> current = root; // x
  5.         Node<T> newNode = new Node<T>(key, null); // z
  6.         while (current != null && current.getValue() != null) {
  7.             cursor = current;
  8.             try {
  9.                 if (newNode.getValue().compareTo(current.getValue()) < 0) {
  10.                     current = (Node<T>) current.getLeftChild();
  11.                 } else if (newNode.getValue().compareTo(current.getValue()) > 0) {
  12.                     current = (Node<T>) current.getRightChild();
  13.                 }
  14.             } catch (NullPointerException ex) {
  15.                 break;
  16.             }
  17.         }
  18.  
  19.         newNode.setParent(cursor);
  20.         if (cursor == null) {
  21.             root = newNode;
  22.         } else if (newNode.getValue().compareTo(cursor.getValue()) < 0) {
  23.             cursor.setLeftChild(newNode);
  24.             newNode.setParent(cursor);
  25.             reBalance((Node<T>) cursor.getLeftChild());
  26.         } else if (newNode.getValue().compareTo(cursor.getValue()) > 0) {
  27.             cursor.setRightChild(newNode);
  28.             newNode.setParent(cursor);
  29.             reBalance((Node<T>) cursor.getRightChild());
  30.         }
  31.  
  32.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement