中缀表达式转后缀表达式
例子
中缀表达式:9+(3-1*2+7/3)*3+10/2
对应的后缀表达式:9312*-73/+3*102/++
方法一:小括号法 3-1+2+7
3127+±
- 给每一个能加上小括号的地方都加上小括号
(9+(((3-(1*2))+(7/3))*3)+(10/2))
- 然后把运算符移到小括号后面
(9(((3(12)*)-(73)/)+3)*(102)/)++
- 去掉小括号
9312*-73/+3*102/++
方法二:堆栈法
- 运算符入栈,运算数字直接写出来
- 预入栈运算符的优先级如果比栈顶的运算符优先级高,则不入栈直接写在出来
- 遇到其他运算符’+”-”*”/’时,弹出所有优先级大于或等于该运算符的栈顶元素,然后将该运算符入栈, 遇到左括号时不能再弹出;