Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Loesung11-2

Java source code icon 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


Funktionsleiste