【问题标题】:Converting terenary and boolean operators from infix to postfix将三元和布尔运算符从中缀转换为后缀
【发布时间】:2015-06-22 13:47:41
【问题描述】:

如何将这两个示例从中缀转换为后缀?

Example 1:
max = (a > b) ? a : b

Example 2:
(a != 0) ? ((b != 0) ? True : False) : False

对于这两个表达式,我想我只需要删除括号。但是,当我尝试从后缀转换回中缀时,表达式无效。我知道怎么做简单的操作:

Infix:     (((a + b) * (c + d) + a) * c - 6) * b

Postfix:   a b + c d + * a + c * 6 - b *

...但我不确定如何转换 max 和 boolean 表达式。

【问题讨论】:

    标签: postfix-operator infix-operator


    【解决方案1】:

    不要将“+”、“-”和“*”视为除 布尔运算符或最大/最小函数,我想你可以理解 简单地说,“所有这些都是有 2 个操作数的运算符—— 即,它们是二元运算符。”

    然后,问题是设置您的表达式树,以便根是 运算符('+'、'-'、'max' 或其他),子元素是操作数。生产 中缀或后缀只是一个关于如何遍历表达式树的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多