图解后缀表达式的计算过程
2015-06-10 09:58
302 查看
图解后缀表达式的计算过程
为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。
后缀表达式:9 3 1-3*+ 10 2/+
· 规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。
下面是详细的步骤:
1. 初始化一个空栈。此桟用来对要运算的数字进出使用。
2. 后缀表达式中前三个都是数字,所以9、3、1进栈。
3. 接下来是减号“-”,所以将栈中的1出栈作为减数,3出栈作为被减数,并运算3-1得到2,再将2进栈。
4. 接着是数字3进栈。
5. 后面是乘法“*”,也就意味着栈中3和2出栈,2与3相乘,得到6,并将6进栈。
6. 下面是加法“+”,所以找中6和9出找,9与6相加,得到15,将15进栈。
7. 接着是10与2两数字进栈。
8. 接下来是符号因此,栈顶的2与10出栈,10与2相除,得到5,将5进栈。
9. 最后一个是符号“+”,所以15与5出找并相加,得到20,将20进栈。
10. 结果是20出栈,栈变为空。
· 果然,后缀表达法可以很顺利解决计算的问题。但是我有个疑问,就是这个后缀表达式“9 3 1-3*+ 10 2/+”是如何通过算式“9+(3-1)*3+10/2”变化而来呢?
这个问题下一篇解决。
相关文章推荐
- Hibernate各种主键生成策略与配置详解
- Hibernate各种主键生成策略与配置详解
- iOS多线程的初步研究(-)-- NSTimer
- Java中使用Preconditions来检查传入参数介绍
- Jquery easyUI datagrid加载复杂JSON数据方法
- inet_ntoa()返回字符串的生命周期
- IOS开发-UIDynamic(物理仿真)简单使用
- 生成圆形头像 (附效果图)
- Add Two Numbers
- LeetCode Word Break
- ubuntu14.04安装OpenVirteX
- 安装scp命令
- 应用程序本地化
- 日经社説 20150610 挑戦突きつけられるG7の結束力
- Android多点触控技术实战,自由地对图片进行缩放和移动
- ASP NET MVC OutputCache
- PHP array_diff_ukey()
- Linux下进程的建立
- smarty模板判断数组为空的方法
- shell脚本检查Tomcat运行状态