为调车场算法处理一元减号



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

显而易见的是,在每个一元"-"前面加一个0。有人知道更好的实施吗?谢谢

几年前我做这件事的方式是为我的后缀表达式发明一个新的运算符。因此,当我在中缀中遇到一元减号时,我会将其转换为#。所以我的a + -b后缀变成了ab#+

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

这在某种程度上取决于你在构建后缀表达式后如何使用它。如果你想显示它,那么你的特殊#运算符可能会让人感到困惑。但如果你只是在内部使用它(我是这样),那么它会很好地工作。

遍历字符串,将所有一元减号运算符替换为0-,并将结果用括号括起来。例如,给定-20 + (-2 * 50),将其转换为(0-20) + ((0-2) * 50)

最新更新