【问题标题】:How To Insert Parenthesis In An Infix Expression Using Stack如何使用堆栈在中缀表达式中插入括号
【发布时间】:2016-06-18 11:15:08
【问题描述】:

我需要一个算法来使用 stackinfix 表达式中插入括号。 例如:

输入:12/c+c*p^(8+9)

输出:((12/c)+(c*(p^(8+9)))))

我只需要这个算法,如果我们通过 prefixpostfix 到达输出就可以了。但输出应与示例完全相同。带全括号的中缀表达式。

如果有人可以提供伪代码或逐步示例,我将不胜感激。

谢谢

【问题讨论】:

    标签: algorithm data-structures stack prefix infix-notation


    【解决方案1】:

    我以前通过反向波兰表示法 (RPN) 实现了这一点。首先,您需要构造表达式的后缀版本。你可以使用the shunting-yard algorithm。其次,您需要“评估”(象征性地)您刚刚创建的后缀表达式。 The RPN evaluation algorithm 这样做。

    【讨论】:

      【解决方案2】:

      1 - 转换为后缀

      2 - 读取后缀表达式

      3 - 后缀表达式的循环 ... 如果字符是操作数,则压入堆栈 else if 运算符 ... 弹出堆栈顶部的两个并将这两个与括号中的当前字符的运算符一起插入并将其压入再次堆叠

      【讨论】:

        猜你喜欢
        • 2014-05-10
        • 2016-09-06
        • 2011-06-13
        • 2020-07-15
        • 2015-12-15
        • 2014-07-01
        • 2020-07-15
        • 1970-01-01
        • 2012-09-22
        相关资源
        最近更新 更多