中缀到后缀的转换

    我们平常所写的标准形式的表达式叫做中缀式,我们可以用栈来把他转换成后缀式。假设只允许操作+,*,(,),并坚持普通的优先级发则。还要假设表达式是合法的。
   
    如将表达式 a + b * c + ( d * e + f ) * g转换成后缀式是a b c * + d e * f + g * +

    思路   :当读到一个操作数时,立即把他放到输出中。而把操作符放进一个栈中。当遇到左括号时我们也要将其推入栈中。
    从一个空栈开始计算。如果遇到一个右括号,那么就将栈元素弹出,将弹出的元素写出直到遇到对应的左括号,但是这个左括号不输出但是要弹出,相应的,如果我们遇到任何其他的操作符,就先从栈中弹出操作符知道发现优先级更低的为止,然后再将操作符入栈。除非是在处理一个“)”时,否则绝不从栈中弹出“(”。
    最后,如果读到输入的末尾,就将栈元素全部弹出写到输出中。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值