逆波兰表达式java
时间: 2023-11-10 07:03:50 浏览: 147
逆波兰表达式是一种将运算符放在操作数后面的表达式,也被称为后缀表达式。在计算机科学中,逆波兰表达式通常比中缀表达式更容易计算和解析。下面是一个简单的逆波兰表达式的例子:
3 4 + 5 *
这个表达式的意思是:先将 3 和 4 相加,然后将结果乘以 5。使用栈可以很容易地计算逆波兰表达式。
Java代码实现:
```java
import java.util.Stack;
public class RPN {
public static int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (String token : tokens) {
if (token.equals("+")) {
stack.push(stack.pop() + stack.pop());
} else if (token.equals("-")) {
int b = stack.pop();
int a = stack.pop();
stack.push(a - b);
} else if (token.equals("*")) {
stack.push(stack.pop() * stack.pop());
} else if (token.equals("/")) {
int b = stack.pop();
int a = stack.pop();
stack.push(a / b);
} else {
stack.push(Integer.parseInt(token));
}
}
return stack.pop();
}
public static void main(String[] args) {
String[] tokens = {"3", "4", "+", "5", "*"};
System.out.println(evalRPN(tokens)); // 输出 35
}
}
```
阅读全文