Zitat von WhiteFist
Kann mir jemand allgemein erklären, wie ich einen gegebenen Postfix Ausdruck in einen geklammerten Infix Ausdruck umwandeln kann in Java !
Ich muss eine Methode schreiben, die das realisiert.
also ich tät da nicht mit einem baum herumtun sondern das ganze gleich rekursiv machen... (dh. eine methode die sich selbst aufruft)
ich versuch das ganze mal als (java-tauglicher) pseudocode (bin zu faul über die genaue syntax nachzudenken, ausserdem kenn ich deine vorgaben nicht)
String convert () {
String tok = getLastToken();
if (tok ist eine Zahl)
return tok;
else {
String string1 = convert();
String string2 = convert();
return "(" + string2 + tok + string1 + ")";
}
}
erklärung zu getLastToken():
konsumiert das letzte token von der eingabe (ein token ist entweder ein operator oder eine zahl) und liefert es als string zurück.
da postfix relativ ungünstig für meine funktion ist lese ich das ganze einfach als prefix ein, dh. immer das letzte token zuerst.
zum zerlegen der eingabe in token würd ich übrigens die stringbuffer klasse verwenden, die is echt praktisch...
weitere details von convert():
Damit dann die reihenfolge der operanden nicht umgedreht wird verwende ich beim rückgabestring zuerst string2 und dann erst string1 (das is notwendig da ich ja von hinten einlese)
die funktion geht übrigens davon aus das mindestens ein token vorhanden ist...
hoffe geholfen zu haben... bei fragen bitte melden