码迷,mamicode.com
首页 > 其他好文 > 详细

前缀表达式 与 后缀表达式

时间:2020-02-01 12:47:42      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:后缀表达式   一个   堆栈   表达式   可见   其他   计算   一个栈   strong   

在计算机编程中,我们使用前缀或后缀表达式进行运算往往比中缀简单

举例示范

中缀表达式:1 + (2 + 3) × 4 - 5
前缀表达式:- + 1 × + 2 3 4 5
后缀表达式:1 2 3 + 4 × + 5 -

对于前缀表达式- + 1 × + 2 3 4 5,这里的前缀指的是运算符号前缀,
- + 1 × + 2 3 4 5 = (2+3)*4+1-5 可见连括号都省了。

运算过程

编程运算前缀表达式的值时,只需要用到一个栈,这个栈主要用来保存操作数。
且编程时,往往从末尾开始读取前缀表达式,如果读到的是数值,均入栈;读到的是操作符,则取2个操作数进行运算即可。

计算前缀表达式的值:- + 1 × + 2 3 4 5
1) 从右至左扫描,将5,4,3,2压入堆栈;
2)遇到+运算符,弹出2和3(2为栈顶元素,3为次顶元素),计算2+3的值,得到5,将5压入栈;
3)遇到×运算符,弹出5和4,计算5×4的值,得到20,将20压入栈;
4)遇到1,将1压入栈;
5)遇到+运算符,弹出1和20,计算1+20的值,得到21,将21压入栈;
6)遇到-运算符,弹出21和5,计算21-5的值,得到16为最终结果

后缀表达式只需要反着来,从左到右读取即可,其他步骤类似

前缀表达式 与 后缀表达式

标签:后缀表达式   一个   堆栈   表达式   可见   其他   计算   一个栈   strong   

原文地址:https://www.cnblogs.com/friedCoder/p/12247973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!