中缀表达式转后缀表达式原则

初始化一个栈,用于保存暂时不能确定运算顺序的运算符

从左到右处理各个元素,知道末尾出现三种情况:

1. 遇到操作数,直接加入后缀表达式

2. 遇到界限符。遇到“(”直接入栈;遇到“)”依次弹出栈内运算符并加入后缀表达式,直到弹出“(”为止。注意“(”不加入后缀表达式。

3. 遇到运算符。依次弹出栈中优先级高于或者等于当前比较的运算符,并加入后缀表达式,若碰到“(”或者栈空时,停止操作。之后再把当前运算符压入栈中。

上述三种情况处理完 字符串后,将栈中剩余运算符依次弹出,并加入后缀表达式

中缀表达式的计算:

一边用中缀表达式转为后缀表达式,一边用栈来计算后缀表达式的值。

初始化两个栈,操作数栈和运算符栈

1. 扫描到操作数栈,压入操作数栈

2. 扫描到运算符,则按照中缀转后缀的相同逻辑压入运算符栈(期间也会弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素,并执行相应的运算,运算结果再压回操作数栈)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值