我試圖做一個衍生計算器(我不得不使用鏈表)。衍生計算器使用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