问题描述
我和我的朋友们正在尝试实现一个计算机代数系统。
我们已经实现了一个算法,将像 1+2*4 这样的表达式转换成二叉树
+
/ \
1 *
/ \
2 4
我们实现了一种算法来评估这种二叉树。
我们现在想要实现一个算法来简化带有变量的表达式。
例如,x+2x 将变成 3x
我认为在二叉树中合并类似的运算符会更容易。例如:
+
/ \
a +
/ \
b c
将成为
+
/ | \
a b c
这样可以更容易地找到可以简化的术语。
例如,如果我的表达式中有 x+2x+3x,那么它们将在同一个 + 运算符下,因此它们可以更容易地找到彼此,而无需遍历树的大部分。
我的朋友认为我们应该用不同的方法实现树。他建议我们把每个节点都实现为一个多项式,然后我们可以在节点之间进行多项式加法等操作。使用这种方法,我们可以更轻松地进行多项式之间的运算,而无需在树中来回走动。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)