【发布时间】:2010-08-09 09:27:27
【问题描述】:
我正在尝试制作一个从后缀到中缀符号的转换器,需要一些帮助。已经有a question about infix-to-postfix conversion,这是一个我无法转换回来的例子。 (注意:这里少了一个减号!)
以下是我的转换器的输出,其中第一个“列”是后缀输入,第二个是我的中缀输出,第三个是我可能应该得到的(?):
2 - = - 2 =? - 2 true
1 + 2 + = + 1 + 2 =? + 1 + 2 true
1 + 2 + + = + (+ 1 + 2) =? + 1 + + 2 false
1 + 2 + + 3 - - 4 - - = - (- (+ (+ 1 + 2) - 3) - 4) =? + 1 + + 2 - - 3 - - 4 false
您认为可以解决这个问题,还是最后两行实际上转换正确?你会如何编写算法来解决这个问题?
请假设更多的运算符(不仅是+ 和-)可以同时设置为一元和二元,其中一元运算符的优先级高于二元运算符。
参考文献
【问题讨论】:
-
我不是专家,但中缀符号不应该使用括号吗?对我来说,第 3 列看起来不像中缀符号,而且含糊不清。
标签: c# c infix-notation postfix-notation shunting-yard