暂记之逆波兰表达式子
来源:互联网 发布:大数据领域ml是什么 编辑:程序博客网 时间:2024/06/10 01:20
扩展阅读:http://www.cnblogs.com/wanghetao/archive/2012/04/23/2466580.html
表达式一般由操作数(Operand)、运算符(Operator)组成,例如算术表达式中,通常把运算符放在两个操作
数的中间,这称为中缀表达式(Infix Expression),如A+B。
波兰数学家Jan Lukasiewicz提出了另一种数学表示法,它有两种表示形式:
把运算符写在操作数之前,称为波兰表达式(Polish Expression)或前缀表达式(Prefix Expression),如+AB;
把运算符写在操作数之后,称为逆波兰表达式(Reverse Polish Expression)或后缀表达式(Suffix Expression),
如AB+;其中,逆波兰表达式在编译技术中有着普遍的应用。
逆波兰表达式虽然看起来比较繁琐,其实在计算机中很有用。计算机可不知道先乘除后加减,先括号内后括
号外,它要把你输入的式子变成逆波兰表达式,它就可以不断地执行上面两个固定的规则,直至把结果算出来
告诉你。编译器在处理时候按照从左至右的顺序读取逆波兰表达式,遇到运算对象直接压入堆栈,遇到运算符
就从堆栈提取后进的两个对象进行计算,这个过程正好符合了计算机计算的原理。所以,逆波兰式非常适宜计
算机的处理。
中序表式生成的逆波兰式唯一吗?:
是唯一的,和固定形式的中序表达式一一对应,但,请注意这个概念,
例如: a+(b-c)*d 和 (b-c)*d+a 和 a+d*(b-c) 的值是完全一样的。但是,他们的中序形式不同,
产生的逆波兰式必然是不同的。
a+(b-c)*d : abc-d*+
(b-c)*d+a : bc-d*a+
a+d*(b-c) : adbc-*+
- 暂记之逆波兰表达式子
- 正则表达式子2
- 正则表达式子收集
- 表达数求值(逆波兰表达式)
- java正则表达式子使用
- 正则表达式子的使用
- [OpenJudge] 2.2基本算法之递归和自调用函数 逆波兰表达式(前缀表达)
- 逆波兰式(后缀表达式)的表达求值
- 逆波兰法求解数学表达示(C++)
- 正则表达式子模式的困惑
- stack应用之逆波兰
- 计算器之逆波兰算法
- leetcode之逆波兰求值
- 【递归】 之 逆波兰表达式
- 数据结构之逆波兰表达式
- lintcode之逆波兰表达式
- 栈之逆波兰计算器
- php正则表达式子模式的反向引用学习笔记
- 这个是空心三角吧
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
- 【Linux 驱动】第十一章 内核的数据类型
- STL实现括号匹配
- poj2253 Dijkstra变形
- 暂记之逆波兰表达式子
- 文本分类的基础入门
- Android系统的开机画面显示过程分析
- 《HTTP权威指南》读书笔记---HTTP报文
- What is BIGIP F5 (LTM and GTM)?
- 第一次
- Android开发之日历控件实现
- NVIDIA;从游戏显卡到游戏引擎的创新体验
- unix系统中带缓存的I/O和不带缓存的I/O的区别