逆波兰表达式计算器的实现过程。(Java)
栈实现计算器之中缀表达式转后缀表达式(逆波兰表达式)
中缀表达式转后缀表达式
思路分析:
1.先创建两个栈,一个栈s1升放运算符,另外一个s2放运算中间数
注:由于后续的操作中放运算中间数的栈中的数中只有push,没有pop,并且最后还要倒序输出一下,所以这里用list集合来代替
2.从左到右遍历中缀表达式
3.遇到操作数的时候就把他压入s2中
4.当遇到运算符的时候分为以下几种情况:
1)当s1栈为空或者为**(**时,直接将当前运算符压入栈s1中
2)若不为空时,将当前运算符与s1栈顶的运算符进行比较,若运算符的优先级小于等于栈顶运算符时,将s1的运算符pop出压入s2中。
3)若优先级大于栈顶的运算符,则直接入栈s1
5.当遇到(、)时分为几种情况。
1)当遇到(时,直接入栈s1
2)当为)时,将s1的栈顶运算符pop出压入s
共有 0 条评论