Hallo zusammen,
ich habe ein Problem bei einer Aufgabe. Zur Aufgabenstellung:
Also generell ging es darum eine Klasse zu schreiben, die einen Datentyp enthält (in diesem Fall int) und zusätzlich noch 2 Referenzen auf den linken und rechten Teilbaum. Das war auch alles kein Problem. Nun soll jedoch die Ausgabe auf der Konsole erfolgen.
Mit einer Methode müssen also die linken und rechten Referenzen rekursiv durchgegangen und ausgegeben werden. Mein Problem liegt nicht in dem durchgehen, sondern in der gewünschten Ausgabe. Hier mal ein Link wie die Ausgabe aussehen soll.
http://moguai.org/beispielBaum.jpg
Ein "|" soll den linken Teilbaum darstellen, der rechte hat ein einfaches Leerzeichen. Ich check nicht, wie man sich die Leerzeichen und "|" Striche merken soll. Habe es schon mit Countern probiert, aber komme da nicht richtig weiter.
Hier ein wenig Fummel-Code von mir:
DIe Ausgabe sieht dann so aus:
Würd micht über einen Ratschlag freuen!
ich habe ein Problem bei einer Aufgabe. Zur Aufgabenstellung:
Also generell ging es darum eine Klasse zu schreiben, die einen Datentyp enthält (in diesem Fall int) und zusätzlich noch 2 Referenzen auf den linken und rechten Teilbaum. Das war auch alles kein Problem. Nun soll jedoch die Ausgabe auf der Konsole erfolgen.
Mit einer Methode müssen also die linken und rechten Referenzen rekursiv durchgegangen und ausgegeben werden. Mein Problem liegt nicht in dem durchgehen, sondern in der gewünschten Ausgabe. Hier mal ein Link wie die Ausgabe aussehen soll.
http://moguai.org/beispielBaum.jpg
Ein "|" soll den linken Teilbaum darstellen, der rechte hat ein einfaches Leerzeichen. Ich check nicht, wie man sich die Leerzeichen und "|" Striche merken soll. Habe es schon mit Countern probiert, aber komme da nicht richtig weiter.
Hier ein wenig Fummel-Code von mir:
Code:
private void printTreeGraph() {
System.out.println("-"+value);
if(left != null) {
for(int i=0;i<=counterLeft;i++) {
System.out.print(" |");
}
counterLeft++;
left.printTreeGraph();
counterLeft--;
}
if(right != null) {
for(int i=0;i<=counterRight;i++) {
System.out.print(" ");
}
counterRight++;
right.printTreeGraph();
counterRight--;
}
if (left != null && right != null) {
}
}
DIe Ausgabe sieht dann so aus:
Code:
Baumdarstellung:
-5
|-8
| |-3
-2
| |-4
-0
-7
-6
|-1
-9
Würd micht über einen Ratschlag freuen!