Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带一元/二元运算符的中缀后缀_C#_C_Infix Notation_Postfix Notation_Shunting Yard - Fatal编程技术网

C# 带一元/二元运算符的中缀后缀

C# 带一元/二元运算符的中缀后缀,c#,c,infix-notation,postfix-notation,shunting-yard,C#,C,Infix Notation,Postfix Notation,Shunting Yard,我正在尝试将后缀转换成中缀符号,需要一些帮助。已经有了,这给了我一个无法转换回来的例子。(注意:此处缺少减号!) 下面是我的转换器的输出,其中第一个“列”是后缀输入,第二个是中缀输出,第三个可能是我应该得到的(?): 你认为有可能解决这个问题,还是最后两行转换正确?您将如何编写算法来解决这个问题 请假定可以将更多运算符(不仅是+和-)同时设置为一元运算符和二元运算符,其中一元运算符的优先级高于二元运算符 工具书类 ,也可通过 论文学程序 后缀表示法没有优先级的概念,因为任何运算符的操作数始终是堆

我正在尝试将后缀转换成中缀符号,需要一些帮助。已经有了,这给了我一个无法转换回来的例子。(注意:此处缺少减号!)

下面是我的转换器的输出,其中第一个“列”是后缀输入,第二个是中缀输出,第三个可能是我应该得到的(?):

你认为有可能解决这个问题,还是最后两行转换正确?您将如何编写算法来解决这个问题

请假定可以将更多运算符(不仅是
+
-
)同时设置为一元运算符和二元运算符,其中一元运算符的优先级高于二元运算符

工具书类
  • ,也可通过
  • 论文学程序

  • 后缀表示法没有优先级的概念,因为任何运算符的操作数始终是堆栈上的前N个值(然后由运算符的结果替换)


    后缀表示法的一个问题是它不能很好地处理运算符符号,这些运算符符号可以根据操作数的数量引用不同的运算符(例如-,它可以表示一元或二元减号)。唯一的解决办法是确保每个运算符都有一个唯一的符号来表示它。

    我不是专家,但中缀符号不应该使用括号?我认为第3列看起来不像中缀符号,而且它是不明确的。
    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