Hallo,
ich bräuchte Hilfe bei einer Aufgabe. Wir sollen folgenden Code:
in eine Methode public Integer[] inorder() ändern, die die Werte nicht mehr auf die Konsole ausgibt, sondern in einem Array gepeichert. (this.getValue() liefert btw den Wert der Wurzel). Mein Versuch sieht bis jetzt so aus:
Aber es funktioniert leider nicht so ganz. Der Baum, mit dem ich die Methode getestet habe, sieht so aus:, d.h. eigentlich müsste die Ausgabe ja so aussehen: 3 2 5 4 6 7 9 8 10. Tatsächlich wird aber 3 2 5 4 6 9 8 10 ausgegeben, also es stimmt eigentlich alles bis auf dass die Wurzel fehlt. Kann mir jemand helfen, das zu beheben?
Schonmal Danke im Voraus.
ich bräuchte Hilfe bei einer Aufgabe. Wir sollen folgenden Code:
Java:
public void inorder() {
if (!this.isEmpty()) {
this.getLeft().inorder();
System.out.print(this.getValue());
this.getRight().inorder();
}
}
Java:
public Integer[] inorder() {
ArrayList <Integer> tmp = new ArrayList<>();
if(!this.isEmpty()) {
this.getLeft().inorder();
tmp.add(this.getValue());
this.getRight().inorder();
}
Integer[]inorder = new Integer[tmp.size()];
tmp.toArray(inorder);
//Ausgabe
for(int i = 0; i<inorder.length; i++) {
System.out.print(inorder[i] + " ");
}
return inorder;
}
Aber es funktioniert leider nicht so ganz. Der Baum, mit dem ich die Methode getestet habe, sieht so aus:, d.h. eigentlich müsste die Ausgabe ja so aussehen: 3 2 5 4 6 7 9 8 10. Tatsächlich wird aber 3 2 5 4 6 9 8 10 ausgegeben, also es stimmt eigentlich alles bis auf dass die Wurzel fehlt. Kann mir jemand helfen, das zu beheben?
Schonmal Danke im Voraus.
