Ich entwickle derzeit einen einfachen Parser für Taschenrechner in Java, der nur mit den Operatoren + und - und ganzen Zahlen arbeitet. Ich habe gelesen über Postfix y Infix Bewertung, und ich frage mich, ob Klammern mit einer dieser Methoden verwendet werden können?
Antworten
Zu viele Anzeigen?Das Schöne an der Postfix/Präfix-Schreibweise ist, dass Sie die Klammern NICHT brauchen. Klammern werden in der Infix-Notation verwendet, weil es Mehrdeutigkeiten gibt, z. B:
a + b - c
Dies kann eine der folgenden Bedeutungen haben:
(a + b) - c
a + (b - c)
In der Postfix-Notation sind sie jedoch eindeutig unterschiedlich:
a b + c -
a b c - +
Es besteht keine Notwendigkeit für Paranthesen/Klammern, um die Auswertungsreihenfolge in der Postfix-Notation durchzusetzen.
Siehe auch
Umwandlung von Infix
Sie können einen Ausdruck in Infix-Notation mit Paranthesen in Postfix-Notation umwandeln, wobei die Priorität der Operatoren beachtet wird. Ein solcher Algorithmus ist der stapelbasierte "Shunting-Yard-Algorithmus" von Edsger Dijkstra.
Siehe auch
Wenn Sie sich nur mit den einfachen mathematischen Operatoren + und - befassen, die kommutativ sind, dann brauchen Sie sich wahrscheinlich nicht um Klammern zu kümmern, die normalerweise die Reihenfolge der Berechnungen erzwingen.
Ihr Rechner braucht nur ein einfacher Parser und Akkumulator zu sein, der Klammern ignoriert, falls vorhanden - es sei denn, ich übersehe etwas über die beabsichtigte Bedeutung der Klammern