后缀表达式计算结果
为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果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 的左图所示。
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}/+"}
为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果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进栈,如图
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}/+"}