Wednesday 26 June 2013

Code for Binary Search Tree

public class BinaryTree {

public int var;
public BinaryTree rightNode;
public BinaryTree leftNode;

public BinaryTree(){

}
public BinaryTree(int var){
this.var=var;
this.rightNode=null;
this.leftNode=null;
}

public void insert(BinaryTree tree, BinaryTree node){
int temp=tree.var;
int temp1=0;
if(node!=null){
temp1=node.var;
}
if(node == null){
//First Node Do nothing
}else if(temp < temp1 && tree.rightNode==null){
tree.rightNode = node;
}else if(temp > temp1 && tree.leftNode == null){
tree.leftNode = node;
}else if(temp < temp1 && tree.rightNode != null){
insert(tree.rightNode,node);
}else if(temp > temp1 && tree.leftNode != null){
insert(tree.leftNode,node);
}
}

public void display(BinaryTree tree){
if(tree == null){
System.out.println("No nodes to display");
}else if(tree.leftNode==null && tree.rightNode == null){
System.out.println(tree.var);
}else if(tree.leftNode==null && tree.rightNode != null){
System.out.println(tree.var);
display(tree.rightNode);
}else if(tree.leftNode != null && tree.rightNode == null){
display(tree.leftNode);
System.out.println(tree.var);
}else if(tree.leftNode != null && tree.rightNode != null){
display(tree.leftNode);
System.out.println(tree.var);
display(tree.rightNode);
}
}

//Main method can be written in your own way. I have used a unique object which i have not used. But this is not the correct approch.
public static void main(String args[]){
BinaryTree obj=new BinaryTree();
BinaryTree bt=new BinaryTree(8);
obj.insert(bt, null);
BinaryTree bt1=new BinaryTree(10);
obj.insert(bt, bt1);
BinaryTree bt2=new BinaryTree(5);
obj.insert(bt, bt2);
BinaryTree bt3=new BinaryTree(7);
obj.insert(bt, bt3);
BinaryTree bt4=new BinaryTree(4);
obj.insert(bt, bt4);
obj.display(bt);
obj.linkedListConversion(bt);
}
}

No comments:

Post a Comment