简介
中缀表达式
就是我们日常所使用的表达式
a+b*c+(d*e+f)*g
后缀表达式
更加的线性,更容易被机器所理解
对应上面
abc * + de * f + g * +
思想
- 从输入中循环遍历每一个字符
- 非运算符(数字)直接输出
- 运算符做如处理
- 若栈为空
- 遇到普通运算符{+ - * /},若栈顶元素优先级
>=
即将入栈的运算符(还未入栈)且栈部位空,
弹出并输出栈顶元素,知道条件不满足,则将为入栈的运算符压入栈中 - 遇到做括号( ,直接压入栈中,
压入后除非遇到右括号
,否则不弹出。 - 遇到右括号),弹出并输出栈顶元素,知道遇到栈中的做括号(
左括号只弹出不输出
- 遇到普通运算符{+ - * /},若栈顶元素优先级
- 若栈为空
- 循环结束,将栈中的元素全部弹出并输出即可。