中缀表达式与后缀表达式

中缀表达式转后缀表达式

中缀表达式:二元运算符总是置于与之相关的两个运算对象之间。平时的运算表达式,例如1+32。
后缀表达式:每一运算符都置于其运算对象之后,例如后缀表达式 123
+

如何转换?

在这里插入图片描述
第一步:给原表达式中的每一组运算均加上括号(即每一个运算符两边算作一组运算)
在这里插入图片描述
第二步:从内向外将运算符挪到对应括号的后面(第一步知一个运算符对应一个括号)
在这里插入图片描述

  • “+”移动到绿色括号外 “ - ”移动到红色括号外 “ * ”移动到蓝色括号外 “/”移动到黄色括号外

第三步:去掉所有的括号。
在这里插入图片描述
至此中缀转后缀就完成了,为什么要这样做呢?后缀表达式如何计算呢?

  • 因为中缀表达式人读起来比较好理解,但是计算机处理起来就很麻烦,运算顺序往往因表达式的内容而定,不具规律性。所以用后缀表达式进行运算。

后缀表达式计算

第一步:转换好的后缀表达式从左往右依次扫描,并依次入栈。

  1. 如果是数字,那么直接入栈到num中
  2. 如果是运算符,将栈顶的两个数字出栈(因为我们考虑的运算符加、减、乘、除都是双目运算符,只需要两个操作数),出栈后对两个数字进行相应的运算,并将运算结果入栈
  3. 直到遇到’\0’

为了直观感受计算过程,我们将字母换成对应的数字,并得到数字算式的后缀表达式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后结果为2与中缀表达式结果相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值