在将中缀表达式转换为后缀表达式时,有没有更好的方法来处理一元“ - ”?
显而易见的是每个一元“ - ”前缀为0.有人知道更好的实现吗?谢谢!
答案 0 :(得分:9)
我多年前的做法是为我的后缀表达式创建一个新的运算符。因此,当我在中缀中遇到一元减号时,我会将其转换为#
。因此,a + -b
的后缀变为ab#+
。
当然,我的评估员必须知道#
只弹出一个操作数。
有点取决于你在构建后使用后缀表达式的方式。如果您想要显示它,那么您的特殊#
运营商可能会让人感到困惑。但如果你只是在内部使用它(我曾经),那么效果很好。