hallo liebe java-community!
ich habe aus übung folgendes problem zu lösen:
ich muss einen rekursiven algorithmus entwicklen, der einen präfix-string in infixnotation ausgibt.
dabei soll ein char array verwendet werden und es darf auch ein zweiter hilfsalgorithmus erstellt werden. externe strukturen wie bäume oder stacks dürfen nicht verwendet werden. der präfix-string ist 0 terminiert(zum schluss kommt eine 0)
der algorithmus soll so aussehen:
der algorithmus gibt zurück ob der string(expression bzw das char array) korrekt ist.
beispiele:
+ab wird zu (a+b)
+-abc wird zu ((a-b)+c)
usw.
folgenden ansatz habe ich schon:
ich habe einen zweiten algorithmus definiert, der noch zusätzlich die stringposition übernimmt.
bei diesem ansatz habe ich aber das problem, dass bei dem string "+ab" nur "(a+" ausgegeben wird. ich müsste mir irgendwie merken, wo der algorithmus nach dem + weiterarbeiten soll. habe aber leider keine idee wie das ordentlich auszuprogrammieren ist.
bitte um hilfe!
edit:
sorry!
habe leider erst jetzt gemerkt das der titel des threads "präfix zu infix algorithmus" lauten müsste.
Edit by Illuvatar: Titel geändert.
ich habe aus übung folgendes problem zu lösen:
ich muss einen rekursiven algorithmus entwicklen, der einen präfix-string in infixnotation ausgibt.
dabei soll ein char array verwendet werden und es darf auch ein zweiter hilfsalgorithmus erstellt werden. externe strukturen wie bäume oder stacks dürfen nicht verwendet werden. der präfix-string ist 0 terminiert(zum schluss kommt eine 0)
der algorithmus soll so aussehen:
Code:
boolean writeInfix(char expr[])
beispiele:
+ab wird zu (a+b)
+-abc wird zu ((a-b)+c)
usw.
folgenden ansatz habe ich schon:
ich habe einen zweiten algorithmus definiert, der noch zusätzlich die stringposition übernimmt.
Code:
public static boolean writeInfix(char expr[]) {
writeInfix(expr, 0);
return true;
}
public static void writeInfix(char expr[], int pos) {
if(expr[pos] == '0') {
return;
}
if(expr[pos] == '+') {
System.out.print("(");
writeInfix(expr, pos +1);
System.out.print(expr[pos]);
} else {
System.out.print(expr[pos]);
}
}
bitte um hilfe!
edit:
sorry!
habe leider erst jetzt gemerkt das der titel des threads "präfix zu infix algorithmus" lauten müsste.
Edit by Illuvatar: Titel geändert.