Skip to main content

Evaluates the Postfix expression

import java.io.*;
import java.util.*;
class Stac 
{
 int st_arr[]=new int[100];
 int t=-1;
 void push(int ele)
 {
  if(t==99)
  {
  System.out.println("STACK is Full.\n");
  return;
  }
  st_arr[++t]=ele;
 }
 int pop()
 {
  if(t==-1)
  {
   return -99;
  }
  return(st_arr[t--]);
 }
}
class Post 
{
 public static void main(String[] args) throws IOException
 {
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  Stac s=new Stac();
  System.out.println("Enter an postfix expression");
  String s1=br.readLine();
  StringTokenizer s2=new StringTokenizer(s1);
  String a[]=new String[s2.countTokens()];
  int j=0;
  while(s2.hasMoreTokens())
   a[j++]=s2.nextToken();
  for(int i=0;i<a.length;i++)
  {
   if(a[i].equals("+"))
   {
    int a1=s.pop();
    int a2=s.pop();
    s.push(a1+a2);
   }
   else if(a[i].equals("-"))
   {
    int a1=s.pop();
    int a2=s.pop();
    s.push(a1-a2);
   }
   else if(a[i].equals("*"))
   {
    int a1=s.pop();
    int a2=s.pop();
    s.push(a1*a2);
   }
   else if(a[i].equals("/"))
   {
    int a1=s.pop();
    int a2=s.pop();
    s.push(a1/a2);
   }
   else if(a[i].equals("%"))
   {
    int a1=s.pop();
    int a2=s.pop();
    s.push(a1%a2);
   }
   else
   {
    s.push(Integer.parseInt(a[i]));
   }
  }
  System.out.println("The result is "+s.pop());
 }
}

Comments

Popular posts from this blog

Find Value of S=ut+1/2*a*t**2.

PROCEDURE:-        1.enter values for u,a,t to find distance        2.find distance with the formulae ut+1/2at 2        3.print the above result CODE:- #include<stdio.h> #include<conio.h> void main() {   float u,t,a,S;   clrscr();   printf(“enter values u,t,a”);   scanf(“%f %f %f”, &u,&t,&a);   S=(u*t)+(0.5*a*t*t);   printf(“\n  S = %f”, S); } Input:- enter values u,t,a               U=10,t=4,a=4.9 Output:- S =79.200