analizando expresiones matematicas en c / c

Tengo una pregunta sobre Parsing Trees:

Tengo una cadena (expresión matemática de separación), por ejemplo: (a b) * c- (d-e) * f / g. Tengo que analizar esa expresión en un árbol:

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

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

¿Qué algoritmo puedo usar para construir un árbol que represente la cadena de expresión anterior?

Use el Shunting-yard algorithm. La descripción de wikipedia es bastante completa, espero que sea suficiente.

También puede intentar escribir una gramática formal, por ejemplo un parsing-expression grammar, y usar una herramienta para generar un analizador. This site about PEGs enumera 3 bibliotecas de C/C++ para el análisis de PEG.

Por favor indique la dirección original:analizando expresiones matematicas en c / c