Polnische Notation
-
hi ich hab mal ein paar fragen bezüglich der umsetzung der Polnischen Notaion
in C++
ich versteh so in etwa das prinzip wie ich die Operatoren und Operanten in den Stack schreibe nur komme ich mit folgeden Beispiel nicht zurecht da in allen Gefundenen Quellen dieser Fall nicht wirklich behandelt wird.zb. 4+4+3*3 wie kann ich erkennen das zuerst das 3*3 gerechnet werden muss und dann weiter gearbeitet wird. Nach meinem Verständnis wird doch 44+ 33*+ aufgelöst oder ?
Habt ihr zufällig auch Quellcode beispiele für sagen wir Vortgeschrittene Anfänger ?
gruß tinsel
p.s. hallo erst mal
-
Hi,
also deine Auflösung stimmt.
Codebeispiel findest du auf jeden Fall in "Algorithmen in C++" von Robert Sedgewick! Viel haste ja irgendwie Zugang zu ner Bücherei, oder läufst in ner Buchhandlung vorbei und guckst mal rein. Ich kann im Moment leider nicht dran, sonst würd ich Dirs abtippen!
-
Sedgewick gibt leider nur einen Algorithmus für vollständig geklammerte Infix-Ausdrücke an. So umgeht er das Problem der Operatorenrangfolge. Ich kenne leider auch keinen Trick, am besten wird es wohl sein, den Ausdruck zu parsen und dann den Baum in Post-Order zu durchlaufen und die Knoten-Labels auszudrucken.
BTW heißt das umgekehrt polnische Notation. Die polnische geht so: +4+4*33 (Prefix-Notation)
-
stimmt mein fehler ->>
BTW heißt das umgekehrt polnische Notation.
ähm -
Bashar schrieb:
Baum in Post-Order zu durchlaufen und die Knoten-Labels auszudrucken.
wie meinen ? Knoten-Label ? <-- was ist das ?
thx for help