《大话数据结构》

后缀表达式计算结果

为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果as的。后缀表达式:}}z一3*+102/+规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处一十栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。
1.初始化一个空栈。此栈用来对要运算的数字进出使用。如图 491 的左图、
2.后缀表达式中前三个都是数字,所以9, 3, 1进栈,如图 491 的右图、

3.接下来是“一”,所以将栈中的1出钱作为减数,3出栈作为被减数,并运算3一得到2,再将2进浅,如图 492 的左图所示。
4.接着是数字3进栈,如图 492 的右图所示。

5.后面是“*”,也就意味着伐中3和2出栈,栈,如图 493 的左图所示。

6.下面是“+’’,所以栈中6和9出栈,9与b 493 的右图所示。2与3相乘,得到6,并将6进相加,得到I5,将15进栈,如图


7.接着是1a与2两数字进栈,如图 494 的左图所示。
8.接下来是符号“厂,因此,栈顶的2与1。出栈,IO与2相除,得到5,将5进栈,如图 494 的右图所示。


9,最后一个是符号 + 所以15与5出栈并相加,得到20,将2进栈,如图 495 的左图所示、
10.结果是20出栈,栈变为空,如图 495 的右图所示、

果然,后缀表达法可以很顺利解决计算的问题。现在除了睡觉的同学,应该都有同样的疑问,就是这个后缀表达式“931一3*+1} 2/+’是怎么出来的?这个问题不搞清楚,等丁没有解决。所以下面,我们就来推导如何让“9+ }3一1)  x 3+10-2”转化为“931一3}+10}/+"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值