后缀表达式

什么是后缀表达式

  • 逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后

将中序表达式转换为逆波兰表达式(后缀表达式)

规则
  1. 如果E是一个变量或常量,则E的后缀式是E本身。
  • 如:a,这是中缀表达式,写成后缀表达式就是:a
  1. 如果E是E1 op E2形式的表达式,这里op是如何二元操作符,则E的后缀式为E1 E2 op。
  • 如:a + b,这是中缀表达式,写成后缀表达式就是:ab+;
  • 如:a - b,这是中缀表达式,写成后缀表达式就是:ab-;
  • 如:a * b,这是中缀表达式,写成后缀表达式就是:ab*;
  • 如:a / b,这是中缀表达式,写成后缀表达式就是:ab/;
  • ………………。
  1. 如果E是(E1)形式的表达式,则E1的后缀式就是E的后缀式。
  • 如:(a),这是中缀表达式,写成后缀表达式就是:a
举例
(a+b)*c-(a+b)/e
后缀表达式:
→((a+b)*c)((a+b)/e)+
→((a+b)c*)((a+b)e/)+
→(ad+c*)(ab+e/)+
→ab+c*ab+e/+
最终结果:ab+c*ab+e/+

作用

  • 实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值