前缀表达式 | 中缀表达式 | 后缀表达式

看题目有点深奥的样子,然而弄明白之后也就那么回事。 (´-ι_-`)虽然我刚开始根本没弄懂……

中缀表达式

中缀表达式(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间。其实说白了,我们平时写的式子都是中缀表达式,就是说运算符位于要计算的两个数中间。中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。

前缀表达式和后缀表达式

前缀表达式是一种没有括号的算术表达式,其将运算符写在前面,操作数写在后面。为纪念其发明者波兰数学家Jan Lukasiewicz,前缀表达式也称为“波兰式”。
  后缀表达式是运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行。


计算方法
  这里我给出一个中缀表达式: a + b ∗ c − ( d + e ) a+b*c-(d+e) a+bc(d+e)
  第一步:按照运算符的优先级对所有的运算单位加括号
      式子变成了: ( ( a + ( b ∗ c ) ) − ( d + e ) ) ((a+(b*c))-(d+e)) ((a+(bc))(d+e))
  第二步:转换前缀与后缀表达式
  前缀:把运算符号移动到对应的括号前面
  则变成了: − ( + ( a ∗ ( b c ) ) + ( d e ) ) -( +(a *(bc)) +(de)) (+(a(bc))+(de))
  把括号去掉: − + a ∗ b c + d e -+a*bc+de +abc+de 前缀式子出现
  后缀:把运算符号移动到对应的括号后面
  则变成了: ( ( a ( b c ) ∗ ) + ( d e ) + ) − ((a(bc)* )+ (de)+ )- ((a(bc))+(de)+)
  把括号去掉:$abc*+de± $后缀式子出现
  发现没有,前缀式,后缀式是不需要用括号来进行优先级的确定的,便于计算机解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ann's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值