0、简介
在考研中,经常会考中缀表达转后缀表达式,那什么是中缀表达?什么是后缀表达式?我举两个例子大家一个就清楚了
中缀表达式 :2 + (3 * 5)【就是我们平常写的计算的式子】
后缀表达式 :2 3 5 * +
接下来我教大家一个超级好用的小技巧,保证看一眼就会🙆♂️
1、中缀表达转后缀表达式小技巧
我以下列式子为例
a + b*c + ( d*e + f ) * g
首先我们从左向右加括号【先乘除后加减】
然后我们把对应的符号拉到表达式(括号)外面【只拉一次】
最后去掉括号即为后缀表达式
2、通过后缀表达式求值
我把abcdefg的值代入上式,如下
1 + 2*3 + ( 4*5 + 6 ) * 7 = 189
则该式的后缀表达式为: 123*+45*6+7*+
那我们如何通过后缀表达式求得原式的值呢?
我们先画一个栈,通过栈的特性求出
栈:先进后出
第一步:我们从左到右把数字放到栈中,遇到运算法把栈最上面两个元素弹出
第二步:遇到运算符,把栈顶两个数字弹出,最先弹出的数字方在运算符右边,第二个弹出的数字放到运算符左边。计算出值放入栈中。
注意:两个数字的位置一定不能反,如果运算符为 ‘-’ ,则算出的值就与原值相反。
第三步:继续进行以上操作,知道表达式算完,最后栈中的值就是表达式的值。