栈运用之——中缀表达式到后缀表达式的转换及运算
利用栈可以很方便实现中缀表达式到后缀表达式的转换,下面来介绍具体规则: 从左至右遍历中缀表达式,将运算符入栈 遇到操作数,直接输出,添加到后缀表达式; 栈为空时,遇运算符,直接入栈; 遇到左括号,直接入栈; 遇左括号,执行出栈,直至弹出的左括号,括号不输出; 遇其他运算符:加减乘除,弹出所有优先级 大于 或 等于 该运算符的栈顶元素,然后将该元素入栈; 最终将栈中元素依次出栈。 例:(a+b)*c*(d-e/f) ————> ab+c*def/-* 下面我们再来看后缀表达式的运算,规则如下: 从 左至右遍 历表达式,遇到 数字 就进 入栈 ;遇到符号,则将 栈顶的两个元素 拿出,第一个栈顶元素作为 操作数 ,第二个栈顶元素作为 被操作数 ,进行运算,然后将结果 入栈 。 来源: oschina 链接: https://my.oschina.net/u/2835802/blog/745339