java实现逆波兰表达式
时间: 2023-11-18 12:29:13 浏览: 161
实现逆波兰表达式的方法如下:
1. 将表达式转化为逆波兰表达式,即后缀表达式
2. 从左到右扫描逆波兰表达式,遇到数字时入栈,遇到运算符时取出栈顶的两个数字进行计算,并将计算结果入栈
3. 最后栈顶元素即为整个表达式的计算结果
Java代码如下:
import java.util.Stack;
public class ReversePolishExpression {
public static void main(String[] args) {
String expression = "3 4 + 5 * 6 -";
System.out.println("表达式的计算结果为:" + calculate(expression));
}
public static int calculate(String expression){
String[] arr = expression.split(" ");
Stack<Integer> stack = new Stack<>();
for(String str : arr){
if(str.equals("+")){
int a = stack.pop();
int b = stack.pop();
stack.push(b + a);
} else if(str.equals("-")){
int a = stack.pop();
int b = stack.pop();
stack.push(b - a);
} else if(str.equals("*")){
int a = stack.pop();
int b = stack.pop();
stack.push(b * a);
} else if(str.equals("/")){
int a = stack.pop();
int b = stack.pop();
stack.push(b / a);
} else {
stack.push(Integer.parseInt(str));
}
}
return stack.pop();
}
}
注意:以上代码未做异常处理,如需要可自行添加。
阅读全文