Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Да се напише алгоритам кој ќе врши евалуација на израз во постфикс нотација.
- На влез се чита низа од знаци за изразот (стринг), а на излез се печати вредноста на изразот по евалуацијата.
- Име на класата (Java): PostFixEvaluation*/
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.NoSuchElementException;
- import java.util.Stack;
- public class PostFixEvaluation {
- static int operacija(int a, int b, char x){
- if(x=='+')
- return a+b;
- else if(x=='-')
- return a-b;
- else if(x=='*')
- return a*b;
- else if(x=='/')
- return a/b;
- else
- return 0;
- }
- public static int rezultat(char [] niza){
- Stack<Integer> s=new Stack<>();
- String br="";
- for(int i=0; i<niza.length; i++){
- if(Character.isDigit(niza[i])){
- br+=niza[i];
- }
- else if(Character.isSpaceChar(niza[i])){
- if(Character.isDigit(niza[i-1])) {
- s.push(Integer.parseInt(br));
- br="";
- }
- }
- else{
- int b = s.pop();
- int a = s.pop();
- int rez=operacija(a,b,niza[i]);
- s.push(rez);
- }
- }
- return s.pop();
- }
- public static void main(String[] args) throws Exception{
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String expression = br.readLine();
- char exp[] = expression.toCharArray();
- System.out.println(rezultat(exp));
- br.close();
- }
- }
Add Comment
Please, Sign In to add comment