我正在为一个项目编写一个小型 CAS 框架,它将数学表达式存储为树,每个节点都是一个运算符,它的分支是参数。它不是二叉树,因为有些节点(例如否定或三角函数)只有一个参数,而其他节点(例如乘法或加法)几乎可以有任意数量的参数。
我的问题是我试图包含可链接的比较(==、<、>、<=、>=、!=)。只要链中的每个运算符都相同(0 < x < 5),这对我的系统来说是微不足道的,但对于某些应用程序,它们可能不是(0 < x <= 5)。到目前为止,我在使用我编写的框架处理这些案例时遇到了麻烦,我想知道是否有任何资源可以说明如何/应该解决这个问题。
之所以需要这些运算符,仅仅是为了允许分段表达式。声明我也实现了布尔运算符(和、或、异或、非)可能是相关的。我认为这可能很重要,因为 0 < x <= 5 与声明 0 < x 和 x <= 5 相同,但如果可能的话,我宁愿不要求这样做。感谢您提供的任何意见。