首页 > 其他 > 详细

中缀表达式转后缀表达式

时间:2021-09-05 16:07:02      阅读:23      评论:0      收藏:0      [点我收藏+]

转自:https://blog.csdn.net/iteye_4185/article/details/82574934

1.假定有中缀表达式1 + (( 2 + 3)* 4 ) – 5,请将它转化为后缀表达式。

方法一:利用表达式树

方法二:利用辅助栈

从左到右遍历中缀表达式的每个操作数和操作符。

当读到操作数时,立即把它输出,即成为后缀表达式的一部分;

若读到操作符,判断该符号与栈顶符号的优先级,若该符号优先级高于栈顶元素,则将该操作符入栈,否则就一次把栈中运算符弹出并加到后缀表达式尾端,直到遇到优先级低于该操作符的栈元素,然后把该操作符压入栈中。

如果遇到”(”,直接压入栈中,如果遇到一个”)”,那么就将栈元素弹出并加到后缀表达式尾端,但左右括号并不输出。最后,如果读到中缀表达式的尾端,将栈元素依次完全弹出并加到后缀表达式尾端。

上述链接中给出了图解。

224. 基本计算器,可练习。

 

中缀表达式转后缀表达式

原文:https://www.cnblogs.com/BlueBlueSea/p/15227712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!