后缀表达式求值的步骤描述
2015-06-11 20:17
267 查看
设置一个栈,开始时,栈为空,然后从左到右扫描后缀表达式,若遇操作数,则进栈;
若遇运算符,则从栈中退出两个元素,先退出的放到运算符的右边,后退出的放到运算符左边,
运算后的结果再进栈,直到后缀表达式扫描完毕。此时,栈中仅有一个元素,即为运算的结果。
例,求后缀表达式:1 2 + 8 2 - 7 4 - / *的值,
栈的变化情如下:
若遇运算符,则从栈中退出两个元素,先退出的放到运算符的右边,后退出的放到运算符左边,
运算后的结果再进栈,直到后缀表达式扫描完毕。此时,栈中仅有一个元素,即为运算的结果。
例,求后缀表达式:1 2 + 8 2 - 7 4 - / *的值,
栈的变化情如下:
步骤 | 栈中元素 | 说明 |
1 | 1 | 1进栈 |
2 | 12 | 2进栈 |
3 | 遇+号退栈2和1 | |
4 | 3 | 1+2=3的结果3进栈 |
5 | 38 | 8进栈 |
6 | 382 | 2进栈 |
7 | 3 | 遇-号退栈2和8 |
8 | 36 | 8-2=6的结果6进栈 |
9 | 367 | 7进栈 |
10 | 3674 | 4进栈 |
11 | 36 | 遇-号退栈4和7 |
12 | 36 | 7-4=3的结果3进栈 |
13 | 3 | 遇/号退栈3和6 |
14 | 32 | 6/3=2的结果2进栈 |
15 | 遇*号退栈2和3 | |
16 | 6 | 3*2=6进栈 |
17 | 6 | 扫描完毕,运算结束 |
相关文章推荐
- GNU Sed - Sed替换入门
- 安卓TV开发(三) 移动智能设备之实现主流TV电视盒子焦点可控UI
- yii phpexcel <转>
- 源码分析:LayoutParams的wrap_content, match_parent, 和具体值
- Linux服务器模型(6.10)
- Oracle学习(十二)之管理临时表空间的数据文件
- 典型用户与场景
- Ubuntu下如何搭建完美Python开发环境?
- shell统计代码行数
- Teams(uva11609+组合)
- 【html5】Canvas 刮刮卡
- 内部排序算法
- lua--函数.变长参数 and 具名实参
- Android popupwindow 示例程序一
- 情感进度条
- 串口通信原理
- 网站添加ico图标添加方法
- 集中化运维管理——Puppet管理之路
- Ecplise快捷键
- 微信多业务 - 消息转发多业务