3. an dritter stelle hast du eine 1 als packst du die in den aktuellen knoten rein
0
/
0
/
- > 1
4. "+" das bedeutet du gehst dem parent knoten hoch und fügst ihm das + an ->
0
/
- > +
/
1
5. jetzt kommt eine 5. die würde normal an diesen knoten eingetragen da der aber schon eine operation beinhaltet machen wir einen neuen child das machst du in dem du dem unten zeiger folgst und dann solange nach rechts gehst bis es nicht weiter geht hei fügst du einen knoten an der 5 bein haltet und der auch
nach links verknüpft sein muss so wie der davor das rechts zeigen muss. kann sein das das alles kompliziert für dich scheint es wird aber relativ kurz und effektiv
0
/
+ <-
/ \
1 5
6.@((1+5)+(1-2)*5)+1 ist ")" das bedeutet das wir nur eins nach oben gehen mit unserem aktuellen zeiger. merke: wir haben 2 variablen deben dem knoten die wir on the fly generieren (in c würde man malloc sagen) 1 variable ist die die immer dorthin zeigt wo ich dir den pfeil aufmale. nennen wir sie constructpointer und die andere zeigt wie schon gesagt auf die wurzel unseres baumes, die nennen wir mal rootpointer
0 <-
/
+
/ \
1 5
leider hab ich meine alten pascal quellen iegendwo gepackt sonst könnt ich es dir in reinem pascal schreiben der knotentyp müsste
so aufgebaut sein um einen zeiger auf sich selbst zu ermöglichen brauchst du noch eine kleine vorwärtsdeklaration
datentyp knotenzeiger = zeiger auf knoten;
datentyp knoten
oben knotenzeiger ;
links knotenzeiger;
rechts knotenzeiger;
unten knotenzeiger;
inhalt integer;
operation char;
end
drück immer auf reload werde dem post immer was anfügen\n\n
<!--EDIT|lichtkind|1083850500-->