中缀表达式转后缀表达式

时间:2021-09-04
本文章向大家介绍中缀表达式转后缀表达式,主要包括中缀表达式转后缀表达式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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

方法一:利用表达式树

方法二:利用辅助栈

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

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

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

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

上述链接中给出了图解。

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

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