ThibautLe 09/10/2009 à 22:51
Merci pour tes explications Kev'. Je ne faisais pas de découpage, ça ne correspond pas a ce que tu dis. De mémoire, sur ton exemple x+y-z ça devait donner :
on lit x => construction d'une feuille représentant x
on lit + => construction d'un nœud représentant l'addition et rattachement de la feuille precedente sur la partie gauche du nœud
on lit y => construction d'une feuille représentant y et rattachement a la partie droite du nœud
on lit - => construction d'un nœud representant la soustraction et rattachement du nœud précédent sur la partie gauche du nouveau noeud
on lit z => construction d'une feuille représentant z et rattachement a la partie droite du nouveau nœud
Voilà. En réalité c'était complexe, là j'ai donné le grand principe. En réalité , c'était une fonction récursive qui s'appelait pour chaque element, que ce soit un identificateur ou un opérateur. Elle prenait en argument la feuille ou le nœud venant d'être créé afin de pouvoir le relier au nœud représentant l'opérateur a traiter. Elle retournait le nœud créé.
Je raconte ca de tête. C'était probablement un peu plus subtil.