可能重复:
简化数学表达式的策略
我有一个数学表达式解析器,它构建一棵树来表示表达式。比如说,我输入2+y+3+y
,它的内部表示是:
现在,作为人类,我们可以立即看到这一点2+y+3+y = 2y + 5
。我看到的计算机的棘手部分是,如果我站在左边+
,我不知道我在另一个分支的右边还有另一个添加 - 这在评估时并不重要,但在简化 i 时看不出这怎么能做得很好。
这就是类如何组合在一起的方式:
我试图用谷歌搜索这个,但在这里找不到任何可以帮助我的东西。只是一些一般的航点,或一个网址或其他东西,将不胜感激
编辑:请注意,对于示例,我只包括添加。解析器支持如下表达式:1+2*(3^4-4/5*(1+2))