java实现后缀表达式(附完整源码)
时间: 2023-11-09 14:06:47 浏览: 64
以下是Java实现后缀表达式的完整源码:
```java
import java.util.Stack;
public class PostfixExpression {
public static int evaluatePostfix(String expression) {
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < expression.length(); i++) {
char c = expression.charAt(i);
if (Character.isDigit(c)) {
int num = 0;
while (Character.isDigit(c)) {
num = num * 10 + (c - '0');
i++;
c = expression.charAt(i);
}
i--;
stack.push(num);
} else {
int op2 = stack.pop();
int op1 = stack.pop();
switch (c) {
case '+':
stack.push(op1 + op2);
break;
case '-':
stack.push(op1 - op2);
break;
case '*':
stack.push(op1 * op2);
break;
case '/':
stack.push(op1 / op2);
break;
}
}
}
return stack.pop();
}
public static void main(String[] args) {
String expression = "23+4*5-";
int result = evaluatePostfix(expression);
System.out.println("Postfix expression evaluation: " + result);
}
}
```
这个程序使用一个Stack来存储数字和操作符,并按照后缀表达式的顺序进行计算。如果遇到数字,它会一直读取直到遇到一个操作符。如果遇到操作符,它会弹出两个数字并执行相应的操作,然后将结果推回Stack中,直到整个后缀表达式被处理完毕。最终,Stack中唯一的元素就是后缀表达式的计算结果。
阅读全文