栈运用之——中缀表达式到后缀表达式的转换及运算

coding

利用栈可以很方便实现中缀表达式到后缀表达式的转换,下面来介绍具体规则:

从左至右遍历中缀表达式,将运算符入栈

  1. 遇到操作数,直接输出,添加到后缀表达式;
  2. 栈为空时,遇运算符,直接入栈;
  3. 遇到左括号,直接入栈;
  4. 遇左括号,执行出栈,直至弹出的左括号,括号不输出;
  5. 遇其他运算符:加减乘除,弹出所有优先级大于或等于该运算符的栈顶元素,然后将该元素入栈;
  6. 最终将栈中元素依次出栈。

例:(a+b)*c*(d-e/f)         ————>        ab+c*def/-*

下面我们再来看后缀表达式的运算,规则如下:

从左至右遍历表达式,遇到数字就进入栈;遇到符号,则将栈顶的两个元素拿出,第一个栈顶元素作为操作数,第二个栈顶元素作为被操作数,进行运算,然后将结果入栈。

以上是 栈运用之——中缀表达式到后缀表达式的转换及运算 的全部内容, 来源链接: utcz.com/z/509766.html

回到顶部