四则运算表达式求值(中缀表达式与后缀表达式转换)--- 栈的应用

中缀表达式转后缀表达式

首先借助辅助栈,遇到数字和字符直接打印,遇到符号把当前符号和栈顶元素进行优先级比较,如果当前元素优先级高,直接入栈,如果当前元素优先级低,则将栈内元素一次出栈再将当前元素入栈,遇到左括号,无条件入栈,遇到右括号,将栈内元素依次输出,直到左括号为止。

中缀表达式:(9+6)* 7 - 8/2=====>>>>>>后缀表达式:9 6 + 7 * 8 2 / -


后缀表达式转中缀表达式

借助辅助栈,遇到数字或字符直接入栈,遇到符号,将栈顶元素的下一个和栈顶元素构成表达式

后缀表达式:9 6 + 7 * 8 2 / - ======>>>>>>中缀表达式:(9+6)*7-8/2

中缀表达式转后缀表达式快速方法

将所有表达式括起来然后符号位放到右括号后面

(9+6)*7-8/2  ==>> ( ( (9+6)*7 ) - (8/2) )  ==>>  (((96)+7)*(82)/)-   括号去掉得到后缀表达式: 96+7*82/-

猜你喜欢

转载自blog.csdn.net/weixin_42097765/article/details/81159550