我需要评估后缀表达式(A*B)+(C*D/E)
通过反向抛光表示法
我的问题是需要多少推送和弹出操作来通过反向抛光表示法来评估这个表达式
提前谢谢你
答案 0 :(得分:0)
首先,这不是一个修复后的表达式,它是一个正常的表达式。
http://en.wikipedia.org/wiki/Reverse_Polish_notation
如果它是在修复后的表示法中。它看起来像这样:
AB*CD*E/+
用于获得此表达式的算法是:http://en.wikipedia.org/wiki/Shunting-yard_algorithm
我会逐步说明(A*B)+(C*D/E)
假设有一个输出队列,它保存表达式,因为它转换为RPN以及操作符堆栈。
Voila:AB*CD*E/+
如果计算括号,则总共有6次推送和6次来自操作员堆栈;如果仅计算运算符,则4次推送和弹出。
希望这会有所帮助。