中缀表达式与后缀表达式
发布日期:2021-05-08 04:04:58 浏览次数:11 分类:精选文章

本文共 540 字,大约阅读时间需要 1 分钟。

中缀表达式转后缀表达式

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

后缀表达式:每一运算符都置于其运算对象之后,例如后缀表达式 123+

如何转换?

在这里插入图片描述

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

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

第三步:去掉所有的括号。

在这里插入图片描述
至此中缀转后缀就完成了,为什么要这样做呢?后缀表达式如何计算呢?

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

后缀表达式计算

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

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

为了直观感受计算过程,我们将字母换成对应的数字,并得到数字算式的后缀表达式。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后结果为2与中缀表达式结果相同。

上一篇:Java中在为什么要在一个构造方法中调用另外一个构造方法?以及如何调用?
下一篇:深入理解this关键字及其使用

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月15日 14时32分18秒