前(中后)序表达式讲解

计算机处理括号、优先级之比较繁琐,前序和后序表达式中没有括号,而且在计算中只需单向扫描,不需要考虑运算符的优先级。

举个例子说明计算过程:

名称表达式
中序表达式2*3/(2-1)+3*(4-1)
前序表达式+/*23-21*3-41
后序表达式23*21-/341-*+

中序表达式:

该表达式是我们常用的,不说了。

前序表达式:

1.计算:```4-1=1```,将得到的值赋回到原式,原式变为```+/*23-21*33```
2.计算:```3*3=9```,将得到的值赋回到原式,原式变为```+/*23-219```
3.计算:取数,连续取出9,1,2,直到取出一个运算符“-”,**将与运算符最近的两个操作数进行计算**,```2-1=1```,赋回到原式中,原式变为```+/*2319```。
4.计算:取数,连续取出 9,1,3,2,**将与运算符最近的两个操作数进行计算**,```2*3=6```,将得到的值赋回到原式,原式变为:```+/619```
5.计算:取数,连续取出9,1,6,**将与运算符最近的两个操作数进行计算**,```6/1=6```,将得到的值赋回到原式,原式变为:```+69```。
6.计算:```6+9=15```,该前序表达式(```+/*23-21*3-41```)的值为15。

即从右至左取数,直到取出一个运算符,将刚取出的紧挨着运算符的两个操作数按运算符进行计算,结果回填至运算符。重复该步骤,直到最后只剩下一个字符串则剩下的字符串即为结果。

后序表达式

  后序表达式的字符串扫描方式正好和前序相反,是从左往右扫描,规则类似。

整理博主的博客:http://www.cnblogs.com/hsrzyn/archive/2009/12/21/1629274.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值