Program 1
// Program for Binary Search Tree without collection classes
import java.util.*;
class BinaryTree
{
static class Node
{
Node ladd;
int data;
Node radd;
}
Node root=null,new1;
void create(Node r,Node new1)
{
if(new1.data<r.data)
{
if(r.ladd==null)
r.ladd=new1;
else
create(r.ladd,new1);
}
if(new1.data>r.data)
{
if(r.radd==null)
r.radd=new1;
else
create(r.radd,new1);
}
if(new1.data==r.data)
System.out.println("duplicate elements not allowed");
}
void inorder(Node pt)
{
if(pt!=null)
{
inorder(pt.ladd); //left move
System.out.println(pt.data); //node data
inorder(pt.radd); //right move
}
}
void preorder(Node pt)
{
if(pt!=null)
{
System.out.println(pt.data); //node data
preorder(pt.ladd); // left move
preorder(pt.radd); //right move
}
}
void postorder(Node pt)
{
if(pt!=null)
{
postorder(pt.ladd); //left move
postorder(pt.radd); //right move
System.out.println(pt.data); //data
}
}
void search(Node pt,int s)
{
try
{
if(pt.data==s)
System.out.println("Searching success");
else
if(s<pt.data)
search(pt.ladd,s);
if(s>pt.data)
search(pt.radd,s);
if(pt==null)
System.out.println("Searching not success");
}
catch(Exception e)
{
System.out.println("Searching not success");
}
}
void menuDesign()
{
int choice,n,s;
String ch;
Scanner scan=new Scanner(System.in);
do
{
System.out.println("------------------Binary Tree Search------------------------");
System.out.println(" 1.Create");
System.out.println(" 2.Inorder");
System.out.println(" 3.Preorder");
System.out.println(" 4.Postorder");
System.out.println(" 5.Search");
System.out.println(" 6.Exit");
System.out.println("-----------------------------------------------------------------");
System.out.println("Enter your choice");
choice=scan.nextInt();
switch(choice)
{
case 1:
{
do
{
System.out.println("Enter an element");
n=scan.nextInt();
new1=new Node();
new1.ladd=null;
new1.data=n;
new1.radd=null;
if(root==null)
root=new1;
else
create(root,new1);
System.out.println("Want to continue");
ch=scan.next();
}while(ch.equals("y"));
break;
}
case 2:inorder(root);break;
case 3:preorder(root);break;
case 4:postorder(root);break;
case 5:
{
System.out.println("Enter an element for search");
s=scan.nextInt();
search(root,s);
break;
}
case 6:break;
default:System.out.println("Invalid choice");
}
}while(choice !=6);
}
}
class BinarySearchTree
{
public static void main(String args[])
{
BinaryTree B=new BinaryTree();
B.menuDesign();
}
}