parsowanie wyrażenia matematycznego w c ++

Mam pytanie dotyczące parsowania drzew:

Mam ciąg znaków (zestawienie wyrażenia matematycznego), na przykład:(a+b)*c-(d-e)*f/g. Muszę przeanalizować to wyrażenie w drzewie:

class Exp{};
class Term: public Exp{
    int n_;
}

class Node: Public Exp{
    Exp* loperator_;
    Exp* roperator_;
    char operation; // +, -, *, /
}

Jakiego algorytmu mogę użyć do zbudowania drzewa, które reprezentuje powyższy ciąg wyrazu?

questionAnswers(6)

yourAnswerToTheQuestion