Exemple #1
0
 /**
  * removes edge between this and right; removes edge between newRight and its parent; creates new
  * edge between this and newRight
  */
 public void linkRight(BSTNode newRight) {
   if (getRight() != newRight) {
     if (getRight() != null) {
       // remove edge between this and right
       unlinkRight();
     }
     if (newRight != null) {
       if (newRight.getParent() != null) {
         // remove edge between newRight and its parent
         newRight.unlinkParent();
       }
       // create new edge between this and newRight
       newRight.setParent(this);
     }
     setRight(newRight);
   }
 }