前缀表达式、中缀表达式、后缀表达式

本文介绍了运算符的前缀、中缀和后缀表示法,以及它们的计算方法。前缀表达式从右到左扫描,中缀表达式依赖于括号和运算符优先级,后缀表达式从左到右计算。通过将中缀表达式转换为前缀或后缀,可以更方便地进行计算。举例说明了前缀和后缀表达式的计算过程,并给出了转换中缀表达式的实例。
摘要由CSDN通过智能技术生成

前、中、后这三个方位名词是运算符相对于操作数的位置而言的:

如果是前缀运算符的话 那么就是运算符在操作数前面

如果是中缀运算符的话 那么就是运算符在操作数中间

如果是后缀运算符的话 那么就是运算符在操作数后面

前缀表达式(波兰式)

前缀表达式的计算方法:

1.遇到操作数 将其压入栈中

2.遇到运算符 从栈中弹出两个操作数

3.从右到左开始扫描 直到到达最左端为止

eg: - + 1 × + 2 3 4 5

首先将5 4 3 2 依次压入栈中

其次遇到了+ 将栈顶的3和2弹出 并且进行加法运算 然后将5压入栈中

接着遇到了x 将栈顶的4和5弹出 并且进行乘法运算 然后将20压入栈中

接着将1压入栈中

接着遇到+ 将栈顶的20和1弹出 并且进行加法运算 然后将21压入栈中

接着遇到- 将栈顶的5和21弹出 并且进行减法运算 然后将16压入栈中

最终的结果就是16

后缀表达式

后缀表达式的计算方法:

1.遇到操作数 将其压入栈中

2.遇到运算符 从栈中弹出两个操作数

3.和前缀表达式唯一不同的是 他是从左往右进行扫描的 直到到达最右端为止

案例和前缀表达式的案例如出一辙

中缀表达式

由于计算机只认识前缀和后缀表达式 所以必须先将中缀转换成前缀或者后缀在进行运算操作

转换方法:

就是根据运算符的优先级来适当进行括号的添加

eg:1+(2+3)×4-5

经过转换以后变成了((1+((2+3)x4))-5)

然后选择一种你想要的目标 比如前缀表达式

然后将运算符统统一道操作数前面

就变成了-(+(1x(+(23)4))5)

然后再将先前添加的括号统统去掉

-+1x+2345

然后就可以通过各自的计算方法进行计算了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

axihaihai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值