This blog will soon be merged with

JavaByPatel

which explains each solution in detail, to visit new blog, click JavaByPatel

Sunday, 28 June 2015

Add a node in Binary Search Tree OR Insert a element into Binary Search Tree in its proper place.

package tree;

/*
 * Add a Node in Binary Search Tree OR
 * Insert a element in Binary Search Tree.
 */
public class AddNodeInBinarySearchTree {
 
 public static void main(String[] args) {
  new AddNodeInBinarySearchTree();
 }
 
 public AddNodeInBinarySearchTree(){

  Node rootNode=null; 
  rootNode  = addNode(rootNode, 50);
  rootNode  = addNode(rootNode, 20);
  rootNode  = addNode(rootNode, 60);
  rootNode  = addNode(rootNode, 10);
  rootNode  = addNode(rootNode, 25);

  printTreeInOrder(rootNode);
 }
 
 private Node addNode(Node rootNode, int i) {
  if(rootNode==null){
   return new Node(i);
  }else{
   if(i > rootNode.getData()){
    Node nodeToAdd = addNode(rootNode.getRight(), i); //OR rootNode.setRight(addNode(rootNode.getRight(), i));
    rootNode.setRight(nodeToAdd);

   }else{
    Node nodeToAdd = addNode(rootNode.getLeft(), i); //OR rootNode.setLeft(addNode(rootNode.getLeft(), i));
    rootNode.setLeft(nodeToAdd);
   }
  }
  return rootNode;
 }

 private void printTreeInOrder(Node rootNode){
  if(rootNode==null)
   return;
  printTreeInOrder(rootNode.getLeft());
  System.out.print(rootNode.getData() + " ");
  printTreeInOrder(rootNode.getRight());
 }
}


Now let us understand how addNode method works