逆波兰表达式求值 java
时间: 2024-05-22 17:09:37 浏览: 190
逆波兰表达式是一种数学表达式的书写和计算方法,它将运算符写在操作数的后面,因此也被称为后缀表达式。相比于传统的中缀表达式,逆波兰表达式不需要考虑运算符优先级和括号匹配等问题,计算也更加简单高效。在Java中,可以通过栈来实现逆波兰表达式的求值。
具体实现步骤如下:
1. 创建一个栈,用于存储操作数和中间结果。
2. 遍历逆波兰表达式的每个元素,如果是数字则入栈,如果是运算符则弹出栈顶的两个元素进行计算,并将计算结果入栈。
3. 最后栈顶元素即为表达式的计算结果。
以下是一个逆波兰表达式求值的Java代码示例:
```
import java.util.Stack;
public class EvaluateReversePolishNotation {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (String token : tokens) {
if (token.equals("+")) {
int num2 = stack.pop();
int num1 = stack.pop();
stack.push(num1 + num2);
} else if (token.equals("-")) {
int num2 = stack.pop();
int num1 = stack.pop();
stack.push(num1 - num2);
} else if (token.equals("*")) {
int num2 = stack.pop();
int num1 = stack.pop();
stack.push(num1 * num2);
} else if (token.equals("/")) {
int num2 = stack.pop();
int num1 = stack.pop();
stack.push(num1 / num2);
} else {
stack.push(Integer.parseInt(token));
}
}
return stack.pop();
}
}
```
阅读全文