Binärer Suchbaum in Array (Java)?
Hi, ich studiere im ersten Semester medizinische Informatik und wir sollen einen binären Suchbaum in einem sortierten Array zurückgeben. Kann mir da jemand helfen (wir programmieren in Java)? Das habe ich bis jetzt:
int[] sort() {
zahlenElemente = new int[this.size()];
return sort(this, zahlenElemente);
}
int[] sort(IntSearchTree suchbaum, int[]array) { if (suchbaum != null) { if (suchbaum.getLeft() != null){ sort(suchbaum.getLeft(), zahlenElemente); zahlenElemente[index] = suchbaum.getValue(); index++; } if (suchbaum.getRight() != null){ sort(suchbaum.getRight(), zahlenElemente); } for (int i = 0; i < this.size(); i++){ System.out.print(zahlenElemente[i] + " "); } } return zahlenElemente; }
Aus irgendeinem Grund werden nur Nullen ausgegeben und ich verstehe nicht warum...
1 Antwort
int[] sort (IntSearchTree suchbaum, int[]array) {
if (suchbaum.getLeft() != null) {
sort(suchbaum.getLeft(), zahlenElemente);
}
zahlenElemente[index] = suchbaum.getValue();
index++;
if (suchbaum.getRight() != null) {
sort(suchbaum.getRight(), zahlenElemente);
}
return zahlenElemente;
}
Du traversierst den Baum falsch. Du musst nach dem linken (und vor dem rechten) Knoten den aktuellen Wert zum Array hinzufügen.