Infix To Postfix In Java Using Stack

25--- Write a program to convert a given infix expression to postfix expression using stack.
import java.util.*;
import java.util.*;
class Infix2Postfix
{  char s[]=new char[100];
    int top=-1;
    void push(char ch){
        top=top+1;
        s[top]=ch;
    }
    char pop(){
        char ch;
        ch=s[top];
        top=top-1;
        return(ch);
    }
    int pre(char ch){
        switch(ch){
            case'^':return 3;
            case'*':return 2;
            case'/':return 2;
            case'+':return 1;
            case'-':return 1;
        }
        return 0;
    }
    boolean isoperand(char ch){
        if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
    return true;
        else
return false;
    }
    boolean isoperator(char ch){
        if(ch=='^'||ch=='*'||ch=='/'||ch=='+'||ch=='-')
return true;
        else
return false;
    }
      void postfixexp(String a){
        char p[]=new char[a.length()];
        char ch;
        int j=0,i;
    for(i=0;i<a.length();i++)
      {ch=a.charAt(i);
          if(ch=='(')
      push(ch);
          else if(isoperand(ch))
p[j++]=ch;
          else if(isoperator(ch))
            { if(s[top]==0||pre(ch)>pre(s[top]))
   push(ch);
              else if(pre(ch)>=pre(s[top]))
            {  p[j++]=pop();
                push(ch);
            }
}
          else if(ch==')')
           {  while((ch=pop())!='(')
            {p[j++]=ch;//displaying uptill ( is encountered
}
   }
}
for(i=0;i<j;i++)
{System.out.print(p[i]);
}//displaying
  }
  public static void main()
  {   Scanner sc=new Scanner(System.in);
      Infix2Postfix obj=new Infix2Postfix();
      System.out.println("Enter Infix Expression");
      String str=sc.nextLine();
      System.out.println("CORRESPONDING POSTFIX EXPRESSION:-");
      obj.postfixexp("("+str+")");
    }//end of main
}//end of class

OUTPUT---
Enter Infix Expression
A+B*(D-F*G+T)+A/G+(J*H)
CORRESPONDING POSTFIX EXPRESSION:-
ABDFGT*-A*GJH*/+
            

Comments

Popular posts from this blog

Sort Boundary Elements Of A Matrix

Lucky Number In Java ISC

Program to fill a square matrix of size ‘n*n” in a circular fashion (clockwise) with natural numbers from 1 to n*n, taking ‘n’ as input.