- void empty(): true, wenn der Baum leer ist.
- Baum left(): Gibt den linken Teilbaum zurück.
- Baum right(): Gibt den rechten Teilbaum zurück.
/**
* Liefert die Anzahl der Knoten eines Baumes.
* @param b: Der Baum, dessen Knotenzahl berechnet werden soll.
* @return Anzahl der Knoten.
*/
public static int anzahlKnoten(Baum b) {
if(!b.empty()) // Jeder Baum hat einen Knoten plus die Knoten seiner linken und rechten
// Teilbäume.
return 1 + anzahlKnoten(b.left()) + anzahlKnoten(b.right());
return 0; // Wenn der Baum keinen Teilbaum hat, hat er keine zusätzlichen Knoten.
}
Genauso einfach lässt sich die Baumtiefe bestimmen. Die Tiefe des Baumes ist seine eigene Tiefe (= 1) plus die Tiefe seines linken oder rechten Teilbaums, je nachdem welcher größer ist:
/**
* Liefert die Tiefe eines Baumes.
* @param b: Der Baum, dessen Tiefe bestimmt werden soll.
* @return die Tiefe des Baumes.
*/
public static int baumTiefe(Baum b) {
if(!b.empty()) // Jeder Baum mit Kindern hat die Tiefe 1 plus die Tiefe des linken oder
// rechten Teilbaums, je nachdem, welcher größer ist.
return 1 + Math.max(baumTiefe(b.left()), baumTiefe(b.right()));
return 0; // Wenn der Baum leer ist, hat er die Tiefe 0.
}
Keine Kommentare:
Kommentar veröffentlichen