我在我個人項目中的一個地方,我需要從代表數學表達式的字符串中構建一棵樹。例如,標準C++庫中是否有一個工具,用於通過運算符從數學表達式構建樹?
"5*(3+2^69)+1"
被內置到
/ \
5*(3+2^69) 1
/ \ /\
/ \
5 (3+2^69)
/\
/\
/ \
/ \
3 2^69
/\ /\
/ \
2 69
/\ /\
我已經從頭開始做一個工具,可以計算衍生一旦功能已被組裝成這樣的樹節點
struct functNode
{
/*
Expresses a function fx as
fx = gx op hx
*/
std::string fx, gx, hx;
opers op; // enum opers = {PLUS, MINUS, MULT, DIV, EXP};
};
這是組裝成一棵樹的部分,我掛了。我無法找出一種方法來將一個函數(用一個字符串表示)放入一棵樹中,而不用多次遍歷字符串。無論如何,我只是給你一個關於我在做什麼的想法,這樣我就可以看到你們中的任何一個人能否指引我到一個圖書館,在那裏我可以找到我需要的功能,以便將它們組合在一起。當我在編程方面做得更好時,我會自己製作樹組件。
爲什麼你需要衍生物?我在這裏沒有得到你想要做的。 – RockOnRockOut 2014-09-18 21:11:18
不,在C++標準庫中沒有工具可以做到這一點。 – 2014-09-18 21:12:40
@MatsPetersson另外,你能指導我什麼地方可以教我如何編寫這些程序的理論嗎? – user4055428 2014-09-18 21:24:21