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

孤街浪徒 提交于 2021-02-19 08:37:51

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

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

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

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!