2

有没有一种合理的方法可以在不使用二叉树的情况下制作整个计算机代数系统(代数方程、极限、导数、积分)?

4

1 回答 1

2

Maple 使用有向无环图(DAG)。仍然是具有节点和链接的树状结构,但是如果两个节点具有共同的子表达式,则它们可以具有相同的子节点。二叉树是 DAG 的一种特殊情况,它是一种特殊类型的图。

二叉树实际上有点限制。您通常希望每个节点有不同数量的子节点:像 -x 这样的单一运算符,具有不同数量参数的函数。积分需要四个孩子:被积函数、上限和下限以及积分的变量。

如果您知道您的元素将属于特定类型,那么其他数据类型可能更合适。例如,如果您正在处理多项式,那么多维数组可能更合适。所以 2 x^2 + 3 x - 7 可能表示为 [7,3,2]。

对于通用系统,我认为您无法摆脱一些类似图形的结构。

于 2014-08-15T05:48:40.217 回答