Loesung11-2
Loesung_Aufgabe11_2.java
—
Java source code,
1 KB (1154 bytes)
Dateiinhalt
public class Aufgabe11_2 { /** * Wandelt ein int Array in einen binären Baum um (breadth-first) * * @param a Integer Array, welches als binärer Baum interpretiert werden soll * @return Binärer Baum */ public static BinTree treeOfArray(int[] a) { return treeOfArray(a, 0); } /** * Helfer Methode für treeOfArray, welche den Teilbaum an der Stelle i berechnet * * @param a Integer Array, welches als binärer Baum interpretiert werden soll * @param i Aktueller index im Array * @return Binärer Baum */ public static BinTree treeOfArray(int[] a, int i) { if (i >= a.length) { return new BinTree(); } // Wir berechnen zuerst rekursiv den linken und rechten Teilbaum von i. // Wie in der Aufgabe angegeben, finden wir diese an der Stelle 2*i+1 und 2*i+2. BinTree left = treeOfArray(a, 2 * i + 1); BinTree right = treeOfArray(a, 2 * i + 2); // Jetzt setzten wir noch den Teilbaum für Stelle i zusammen. return new BinTree(left, a[i], right); } public static void main(String[] args) { int[] a = new int[]{1, 2, 7, 4, 5, 18, 5, 6, 7, 8, 9}; BinTree t = treeOfArray(a); t.drawTree(); } }
Artikelaktionen