10 SWE1 Uebung Online

Werbung
INFORMATIK
UNIVERSITÄT LINZ
A. Riener
SWE1 / Übung 10 (19.01.2011)
Rekursion
Binärbäume
SWE1 / Übung 10
INFORMATIK
UNIVERSITÄT LINZ
A. Riener
Rekursion –
Definition und Eigenschaften
Methode, die sich selbst aufruft
Rekursion umfasst immer
Abbruchbedingung(en) (Rekursionsanker: Ausstieg/Rückkehr
aus der Rekursion)
Rekursive(n) Aufruf(e)
Indirekte Rekursion
Zwei oder mehrere Methoden rufen sich gegenseitig auf
Nur eine dieser Methoden muss eine Abbruchbedingung
bereitstellen
Meist ineffizienter als iterative Lösung
Oft klarer als iterative Lösung
INFORMATIK
UNIVERSITÄT LINZ
SWE1 / Übung 10
A. Riener
Rekursive Algorithmen:
Grundstruktur
Rekursion(){
if (Abbruchbedingung){ –– Rekursionsanker
löse einfaches Problem;
gib Ergebnis zurück;
} else { –– rekursiver Aufruf
zerlege Problem in einfachere(s) Problem(e)
und rufe Rekursion() für diese(s)
Problem(e) auf;
vereinige einfachere Lösung(en);
}
}
kleinere(n)
SWE1 / Übung 10
INFORMATIK
UNIVERSITÄT LINZ
A. Riener
Binärer Suchbaum
Ein Binärbaum ist entweder leer oder er besteht aus
einem Knoten dem ein Element und zwei binäre Bäume
zugeordnet sind (rekursive Definition)
Bei einem Binären Suchbaum sind die Elemente
sortiert: Alle Elemente im linken Teilbaum eines Knoten
sind kleiner als das Knotenelement, alle Elemente im
rechten Teilbaum sind größer (oder gleich) als das
Knotenelement
<4>
INFORMATIK
UNIVERSITÄT LINZ
SWE1 / Übung 10
A. Riener
Binärer Suchbaum
Binärbaum: Knoten K mit zugeordnetem E und zwei
binären Bäumen B1 und B2 (rekursive Definition)
K
B1
E
B
B2
K
K
E
E
B
B
INFORMATIK
UNIVERSITÄT LINZ
SWE1 / Übung 10
A. Riener
Traversierung
Pre Order (Wurzel, links, rechts)
In Order (links, Wurzel, rechts)
Post Order (links, rechts, Wurzel)
Linz
Graz
Enns
<6>
Wels
Lienz
SWE1 / Übung 10
INFORMATIK
UNIVERSITÄT LINZ
A. Riener
Überlegungen zur Implementierung
Operationen auf Bäume
Anlegen eines Baumes
Einfügen von Knoten
Suchen von Knoten
Traversierung
(Löschen von Knoten)
<7>
Aufteilung Funktionalität
Baum
hat Verweis auf
Wurzelknoten
Einfügen, Suchen von
Knoten
Traversierung
Löschen von Knoten
Knoten
hat Verweis auf linken und
rechten Teilbaum
kennt Inhalt (Element)
Herunterladen