在将中缀表达式转换为后缀表达式时,是否有更好的方法来处理一元“-”?
显而易见的是,每个一元“-”都带有 0 前缀。有人知道更好的实现吗?谢谢!
在将中缀表达式转换为后缀表达式时,是否有更好的方法来处理一元“-”?
显而易见的是,每个一元“-”都带有 0 前缀。有人知道更好的实现吗?谢谢!
我几年前的做法是为我的后缀表达式发明一个新的运算符。因此,当我在中缀中遇到一元减号时,我会将其转换为#
. 所以我的后缀a + -b
成为ab#+
.
而且,当然,我的评估者必须知道#
只弹出一个操作数。
有点取决于您在构建后缀表达式后如何使用它。如果你想显示它,那么你的特殊#
操作员可能会让人们感到困惑。但是,如果您只是在内部使用它(我曾经使用过),那么它会很好用。
遍历字符串,并将所有一元减号运算符替换0-
为括号,并将结果括起来。例如,给定-20 + (-2 * 50)
,将其转换为(0-20) + ((0-2) * 50)
。