深入理解前缀、中缀、后缀表达式
2015-09-16 10:16
267 查看
1.我们首先来看一下,什么是前缀、中缀、后缀表达式:
中缀表达式: 2 - 3 * 4
后缀表达式:2 3 4 * -
前缀表达式:- 2 * 3 4
简单介绍下,前中后的划分依据为两个数字的操作符处于两个数字的前面,中间还是后面,其中中缀表达式为我们日常生活中常见的表达形式。
2.重要操作过程
后缀表达式求值过程:
从左到右扫描后缀表达式:遇到数字就将其压入栈中;遇到操作符,则取出栈顶的两个元素(栈顶元素为a, 另一个为b),并计算b 操作符 a的取值,并将结果重新压入栈中。扫描整个表达式结束后,栈中数值即为整个表达式的结果。
前缀表达式求值过程:
从右向左扫描前缀表达式:其他操作除了(栈顶元素为b, 另一个为a)与后缀表达式求值,不再赘述。
中缀表达式转换为后缀表达式过程:
从左到右扫描中缀表达式,遇到数字
中缀表达式转换为前缀表达式过程
中缀表达式: 2 - 3 * 4
后缀表达式:2 3 4 * -
前缀表达式:- 2 * 3 4
简单介绍下,前中后的划分依据为两个数字的操作符处于两个数字的前面,中间还是后面,其中中缀表达式为我们日常生活中常见的表达形式。
2.重要操作过程
后缀表达式求值过程:
从左到右扫描后缀表达式:遇到数字就将其压入栈中;遇到操作符,则取出栈顶的两个元素(栈顶元素为a, 另一个为b),并计算b 操作符 a的取值,并将结果重新压入栈中。扫描整个表达式结束后,栈中数值即为整个表达式的结果。
前缀表达式求值过程:
从右向左扫描前缀表达式:其他操作除了(栈顶元素为b, 另一个为a)与后缀表达式求值,不再赘述。
中缀表达式转换为后缀表达式过程:
从左到右扫描中缀表达式,遇到数字
中缀表达式转换为前缀表达式过程
相关文章推荐
- 有关openmesh 4.1如何在vs2010以及qt creator中搭建使用
- leetcode Minimum Depth of Binary Tree
- RHEL7/CENTOS7进入单用户模式重置ROOT密码
- Python+OpenCV学习(14)---Laplace金字塔进行图像融合
- jquery.validate.js默认配置,jquery.validate.js自定义提示信息
- Android Studio 自定义属性,命名空间
- .top域名注册量TOP15:12家中国域名商均实现上涨
- ubuntu14.04安装openstack kilo
- Windchill 简单的jca显示查询信息
- Android 多媒体应用:视频播放之VideoView与SurfaceView
- 字符驱动之二操作方法(struct file_operations)【转】
- 让你提前知道软件开发(24):C语言和主要特征的发展史
- ios 获取手机中所有图片
- 设置 oracle sqlplus DBMS_OUTPUT.put_line
- nodejs配置Log服务
- Warning: Multiple build commands for output file
- Apache POI (JAVA处理Office文档的类库)
- 在VS界面程序中显示命令行窗口
- HDU 5437
- 高通,mtk,展讯平台的定制集成