8、依次弹出s2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式。
四、逆波兰计算器
大体思路:
1、中缀表达式转为后缀表达式,然后通过逆波兰计算器计算后缀表达式;
2、先将中缀表达式转为对应的List,方便运算 ;(3+4)* 5 - 6 转成 [(, 3, +, 4, ), *, 5, -, 6]
3、将list转为后缀表达式对应的list; [(, 3, +, 4, ), *, 5, -, 6] 转为 [3, 4, +, 5, *, 6, -]
4、完成逆波兰计算器
五、代码实现
package dataStructure.stack;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class PolandNotation {
public static void main(String[] args) {
String expression = “(3+4)*5-6”;//注意表达式
List infixExpressionList = toInfixExpressionList(expression);
System.out.println(“中缀表达式对应的List=” + infixExpressionList); // ArrayList [(, 3, +, 4, ), *, 5, -, 6]
List suffixExpreesionList = parseSuffixExpreesionList(infixExpressionList);
System.out.println(“后缀表达式对应的List” + suffixExpreesionList); //ArrayList [3, 4, +, 5, *, 6, -]
System.out.printf(“expression=%d”, calculate(suffixExpreesionList));
}
//方法:将 中缀表达式转成对应的List
// s=“(3+4)*5-6”;
public static List toInfixExp