前缀、中缀、后缀表达式

前缀、中缀、后缀表达式,它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。对计算机来说中缀表达式是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。对计算机来说,计算前缀或后缀表达式的值非常简单。

举例: (3 + 4) × 5 - 6  中缀表达式 - × + 3 4 5 6  前缀表达式 3 4 + 5 × 6 -  后缀表达式

前缀表达式的求值:

从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。

后缀表达式求值:

从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

python: hasattr()、setattr()、getattr()、delattr() 内建函数

1022
来自专栏lzj_learn_note

5-遍历、公共方法、引用

通过for ... in ...:的语法结构,可以遍历字符串、列表、元组、字典,集合等数据结构。

574
来自专栏从零开始学 Web 前端

从零开始学 Web 之 JS 高级(二)原型链,原型的继承

原型链表示的是实例对象与原型对象之间的一种关系,这种关系是通过__proto__原型来联系的。

933
来自专栏前端知识分享

第174天:面向对象——公有属性、私有属性和静态属性

943
来自专栏coding for love

JS入门难点解析11-构造函数,原型对象,实例对象

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

741
来自专栏LanceToBigData

JavaSE(二)之继承、封装、多态

学习完类与对象终于认识到什么是类,什么是对象了。接下来要看的就是java的三大特征:继承、封装、多态。 一、封装(数据的隐藏) 在定义一个对象的特性的时候,有必...

1775
来自专栏androidBlog

java字符串对象的存储机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

981
来自专栏运维技术迷

PHP-循环

php中,一共提供了以下循环语句: while:只要指定的条件成立,则循环执行代码块(在不确定循环次数的情况下使用) do….while:首先执行一次代码块,然...

2655
来自专栏java达人

Java初始化顺序

作者:wota 来源:http://www.cnblogs.com/miniwiki/archive/2011/03/25/1995615.html(点击文末阅...

2037
来自专栏PHP在线

PHP字符串和数组操作函数

str_split() 函数把字符串分割到数组中。 stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。 stripcslas...

3457

扫码关注云+社区