我试图做一个衍生计算器(我不得不使用链表)。衍生计算器使用LinkedList的C++
每个节点的结构应该如下:
struct node {
int coefficient;
string function;
int power;
node*fx;
node*gx;
node*next;
};
|系数|函数|电源| f(x)| g(x)|下一页|
输入表示例如:
3X^2((3×-3)/(4×2))+ SIN(4X-3)
系数*函数^功率(F (X)/ G(X))+下一
我尝试使用正则表达式,但它并不容易,当涉及到嵌套表达式一起工作,因为用户可能会引发未知的许多功能。
我知道,我必须以某种方式解析表达式,那么一切都分成载体中,然后节点填补,但我只是不能,因为我是相当新的C++编写一个逻辑。
我也试图与ExprTk工作,但我发现很难理解,我找不到它的任何在线教程,除了随之而来的自述文件。
如果有人能指导我在正确的方向或告诉我一个教程,将是巨大的。
你可以在用括号括起来的时候用'+'分割输入,所以你只需要处理一个'coefficient * function^power(f(x)/ g(x))'列表(不要分割如果f(x)或g(x)包含一个“+”),这意味着解析函数或正则表达式不再需要处理任意数量的函数,而只能处理1.然后,您可以递归地调用解析函数来填充在'F(X)','G(X)'和'next'。 – nwp
谢谢!这解决了嵌套问题。 – Mincer