Site icon DataFlair

BST Traversal Inorder, Preorder and Postorder in DSA Java

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();
    }
}

 

Exit mobile version