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. 🙂