Also ich habe meinen Parser soweit fertig, d.h. :
- Screener (entfernen der Leerzeichen etc...)
- Lexikalischer Scanner
- Parser (erstellt einen Parsebaum (Binärbaum)
- Berechnung des Parsebaums (+,-,*,/,x^y)
- Variablen können durch Werte ersetzt werden
Nun will ich das der Parsebaum sich soweit zusammenfasst wie es geht, also würde im Baum z.b.
3*x+4*x
Würde daraus:
7*x
Sozusagen Vereinfachen von Termen in der Mathematik auf meinen Parsebaum (siehe Bild) angewandt.
Dabei besteht mein Parsebaum halt wie bei einer verketteten Liste aus nem Wert und einem Zeiger aufs nächste Objekt (bei meinem Baum wären das aber dann 2 Zeiger pro Wert).
Ich bräuchte nun einen Ansatz dafür wie ich das Vereinfachen des Baumes umsetzten kann.
Edith: Das man sozusagen auch Variablen addieren kann in meinem Parser: x+x = 2x und so weiter...
MfG Alaitoc