9

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

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

4

2 回答 2

10

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

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

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

于 2013-11-27T17:19:39.153 回答
0

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

于 2021-10-15T08:12:46.863 回答