处理一元减去分流码算法

时间:2013-11-27 15:42:38

标签: algorithm rpn shunting-yard

在将中缀表达式转换为后缀表达式时,有没有更好的方法来处理一元“ - ”?

显而易见的是每个一元“ - ”前缀为0.有人知道更好的实现吗?谢谢!

1 个答案:

答案 0 :(得分:9)

我多年前的做法是为我的后缀表达式创建一个新的运算符。因此,当我在中缀中遇到一元减号时,我会将其转换为#。因此,a + -b的后缀变为ab#+

当然,我的评估员必须知道#只弹出一个操作数。

有点取决于你在构建后使用后缀表达式的方式。如果您想要显示它,那么您的特殊#运营商可能会让人感到困惑。但如果你只是在内部使用它(我曾经),那么效果很好。