概述
什么是后缀表达式
- 逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)
将中序表达式转换为逆波兰表达式(后缀表达式)
规则
- 如果E是一个变量或常量,则E的后缀式是E本身。
- 如:a,这是中缀表达式,写成后缀表达式就是:a
- 如果E是E1 op E2形式的表达式,这里op是如何二元操作符,则E的后缀式为E1 E2 op。
- 如:a + b,这是中缀表达式,写成后缀表达式就是:ab+;
- 如:a - b,这是中缀表达式,写成后缀表达式就是:ab-;
- 如:a * b,这是中缀表达式,写成后缀表达式就是:ab*;
- 如:a / b,这是中缀表达式,写成后缀表达式就是:ab/;
- ………………。
- 如果E是(E1)形式的表达式,则E1的后缀式就是E的后缀式。
- 如:(a),这是中缀表达式,写成后缀表达式就是:a
举例
(a+b)*c-(a+b)/e
后缀表达式:
→((a+b)*c)((a+b)/e)+
→((a+b)c*)((a+b)e/)+
→(ad+c*)(ab+e/)+
→ab+c*ab+e/+
最终结果:ab+c*ab+e/+
作用
- 实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。
最后
以上就是兴奋大叔为你收集整理的后缀表达式的全部内容,希望文章能够帮你解决后缀表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复