2011-01-11 6 views
1

J'ai une chaîne/expression comme ceci:Chaîne Parsing - récursive

(((p1 == 1) && (p2 != 2)) || p3 > 3) || (p4 < 5) 

Je veux analyser cette expression récursive afin de construire un arbre d'expression binaire. Donc, pour cette expression, la racine serait || opérateur.

Comment puis-je construire cet algorithme? Merci d'avance,

Répondre

3

Jetez un oeil à la Shunting-Yard Algorithm.

Dans l'informatique, l'algorithme shuntage-cour est une méthode pour l'analyse syntaxique des expressions mathématiques spécifié dans la notation infixe. Il peut être utilisé pour produire une sortie en notation polonaise inversée (RPN) ou comme arbre de syntaxe abstraite (AST). L'algorithme a été inventé par Edsger Dijkstra et nommé l'algorithme de "shunting yard" parce que son fonctionnement ressemble à celui d'une gare de triage ferroviaire.