逆波兰计算器分析与实现
只针对整型进行计算,重点关注思想
逆波兰表达式就是后缀表达式,中缀表达式转后缀表达式可见上一条贴
思路:首先输入一个逆波兰表达式如:(3+4)*5-6 ——>3 4 + 5 * 6 -
(1)从左至右扫描,将3和4压入栈
(2)遇到+运算符,因此弹出4和3(4为栈顶元素,3为次栈顶元素),计算出3+4的值,得7,再将7入栈
(3)将5入栈
(4)接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈
(5)将6入栈
(6)最后是-运算符,计算出35-6的值,即29,由此得出结果
代码如下:
public class ReversePolndNotation {
public static void main(String[] args) {
String suffixExpression = "3 4 + 5 * 6 -";
List<String> listString = getListString(suffixExpression);
int calculate = calculate(listString);
System.out.println("计算的结果是:"