【问题标题】:How to convert infix equation to postfix equation on C#?如何在 C# 上将中缀方程转换为后缀方程?
【发布时间】:2016-10-17 11:50:43
【问题描述】:

我在 google 上找到了很多算法,但是我找不到将中缀转换为后缀的可运行算法。如何在 C# 上将中缀方程转换为后缀方程?请帮忙...

【问题讨论】:

标签: c# equation postfix-notation infix-notation


【解决方案1】:

这是一个学习编程的好小项目。有两部分:将代码解析成树,然后将树打印为后缀。每个树节点是一个有两个孩子的算子:4 + (5/6)+ 作为根节点,孩子是 4 和 5/6。当您深入查看5/6 节点时,您会发现一个父节点有两个子节点:父节点是/,子节点是56

解析是最难的部分。要解析表达式,请查看需要解析的内容,找到运算符,并注意运算符的左侧和右侧。运算符是节点,它有两个子节点:Parse(stuff to the left)Parse(stuff to the right)。您需要特别注意减号(它是一元运算符,因此不是严格的中缀)。我建议将减号视为一种特殊情况:-4 应该被解析为-4,而不是带有一个子节点4 的减号节点。解析方程时,所有内部节点都应该是运算符,所有叶节点都是数字。

解析后,只需打印即可。对于根节点,print(node) 将打印“(”,左孩子(递归打印),右孩子(递归打印),运算符,然后用“)”关闭表达式(节点)。

我没有方便的算法链接,但如果你自己实现它,你实际上会增长很多。

【讨论】:

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