1 import java.util.Scanner;
2
17 public class UPNStackOO {
18 public static void main(String[] args) {
19 Scanner scanner = new Scanner(System.in);
20
21
22 Stack stack = new Stack(10);
24
25 while (scanner.hasNext()) {
26
27 if (scanner.hasNextInt()) {
28
29 int zahl = scanner.nextInt();
30
31 if (! stack.offerfirst(zahl) ) System.out.println("Stack ist bereits voll");
33 }
34
35 else {
36
37 String s = scanner.next();
38 char operation = s.charAt(0);
40 int operand2 = stack.pollfirst(); int operand1 = stack.pollfirst(); int ergebnis;
43
44 switch ( operation) {
45
46 case '+': ergebnis = operand1 + operand2;
47 break;
48
49 case '-': ergebnis = operand1 - operand2;
50 break;
51
52 case '*': ergebnis = operand1 * operand2;
53 break;
54
55 case '/': ergebnis = operand1 / operand2;
56 break;
57
58 case '%': ergebnis = operand1 % operand2;
59 break;
60
61 default: System.out.println("keine gültige Operation");
62 ergebnis = -999999;
63 }
64
65 System.out.println("=" + ergebnis);
66
67 stack.offerfirst(ergebnis); }
69
70 }
71
72 }
73 }
74