Makarona

Постфикс нотација

Nov 11th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.82 KB | None | 0 0
  1. /*Да се напише алгоритам кој ќе врши евалуација на израз во постфикс нотација.
  2.  
  3. На влез се чита низа од знаци за изразот (стринг), а на излез се печати вредноста на изразот по евалуацијата.
  4.  
  5. Име на класата (Java): PostFixEvaluation*/
  6. import java.io.BufferedReader;
  7. import java.io.InputStreamReader;
  8. import java.util.NoSuchElementException;
  9. import java.util.Stack;
  10.  
  11. public class PostFixEvaluation {
  12.     static int operacija(int a, int b, char x){
  13.         if(x=='+')
  14.             return a+b;
  15.         else if(x=='-')
  16.             return a-b;
  17.         else if(x=='*')
  18.             return a*b;
  19.         else if(x=='/')
  20.             return a/b;
  21.         else
  22.             return 0;
  23.     }
  24.     public static int rezultat(char [] niza){
  25.         Stack<Integer> s=new Stack<>();
  26.         String br="";
  27.         for(int i=0; i<niza.length; i++){
  28.             if(Character.isDigit(niza[i])){
  29.                 br+=niza[i];
  30.             }
  31.             else if(Character.isSpaceChar(niza[i])){
  32.                 if(Character.isDigit(niza[i-1])) {
  33.                     s.push(Integer.parseInt(br));
  34.                     br="";
  35.                 }
  36.             }
  37.             else{
  38.                 int b = s.pop();
  39.                 int a = s.pop();
  40.                 int rez=operacija(a,b,niza[i]);
  41.                 s.push(rez);
  42.             }
  43.         }
  44.         return s.pop();
  45.     }
  46.  
  47.     public static void main(String[] args) throws Exception{
  48.  
  49.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  50.  
  51.         String expression = br.readLine();
  52.         char exp[] = expression.toCharArray();
  53.  
  54.         System.out.println(rezultat(exp));
  55.         br.close();
  56.     }
  57. }
Add Comment
Please, Sign In to add comment