中缀表达式转后缀表达式 方法思路

后缀表达式又称逆波兰表达式,明显的特点是:逆波兰表达式中没有括号,计算时将操作符之前的第一个数作为右操作数,第二个数作为左操作数,进行计算,得到的值继续放入逆波兰表达式中。
在这里插入图片描述
中缀转后缀思路(基本就是固定的方法):
1.先了解运算符的优先级, (左括号 低于 ±加减 低于 */ 乘除 【加减为同级,乘除为同级】
2.需要用到一个栈用来存储运算符
3.对于一个中缀表达式,读取有如下规则:
(1)从中缀表达式开头向后读
(2)遇到数字直接输出
(3)若遇到左括号,则将其压栈
(4)若遇到右括号,这时需将栈顶的运算符依次弹出并输出,直至遇到左括号(即将右括号,左括号之间的运算符按栈弹出的顺序全部输出,但左右括号不输出,直接删除即可)
(5)若遇到的是运算符:a、如果该运算符的优先级大于栈顶运算符的优先级时,将其压栈
b、如果该运算符的优先级小于或等于栈顶运算符的优先级时,将栈顶运算符弹出并输出,接着和新的栈顶运算符比较,若大于,则将其压栈,若小于等于,继续将栈顶运算符弹出并输出…(一直递归下去,直至运算符大于栈顶运算符为止)。//请一定要耐心读完并掌握规则☺☺
(6) 若扫描到中缀表达式的末尾,这时直接将栈中元素全部弹出(栈还有运算符的话)

下面以上面那个例子中缀表达式 1*(2+3*(4-5)*6-7)+8为例

如何输出 后缀表达式 1 2 3 4 5 - *6 *+ 7 - * 8 +
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值