• Keine Ergebnisse gefunden

ErgänzungzuunserenKurzeinstiegundLiteraturreferenzen: • Ziel: ImplementierungeineseinfachenbinärenSuchbaums • Ziel

N/A
N/A
Protected

Academic year: 2021

Aktie "ErgänzungzuunserenKurzeinstiegundLiteraturreferenzen: • Ziel: ImplementierungeineseinfachenbinärenSuchbaums • Ziel"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ziel

Ziel: Implementierung eines einfachen binären Suchbaums

• Ergänzung zu unseren Kurzeinstieg und Literaturreferenzen:

Vorlesung “Algorithmen und Datenstrukturen”

Wikipedia: Binärbaum

Wikibooks: Binärbäume in C

108

(2)

Binäre Suchbäume

• Binärbaum ist gewurzelter Baum

• Jeder Knoten hat höchstens zwei Kindknoten

• Jeder linke und rechte Teilbaum ist wieder ein Binärbaum

• Für jeden Teilbaum mit Wurzel w gilt:

Alle Werte im linken Teilbaum sind kleiner als w

Alle Werte im rechten Teilbaum sind größer als oder gleich w

• Die Suchzeit von Elementen ist allerdings stark von der Anordnung im Baum abhängig!

109

(3)

Binäre Suchbäume - Worst Case

• Fügen wir die gleichen Knoten aus dem vorherigen Beispiel in einer anderen Reihenfolge ein. . .

. . . erhalten wir einen entarteten Baum.

110

(4)

Binäre Suchbäume - Varianten

• Um bessere Suchzeiten zu erreichen gibt es verschiedene Umsetzungen:

Balancierter Baum:

Da die Laufzeiten der meisten Operationen auf Bäumen von deren Höhe abhängen, garantieren balancierte Bäume eine maximale Höhe vonc·log(n).

Diese Bäume können beispielsweise auch nach der Wahrscheinlichkeit ihrer Knotenzugriffe gewichtet und ausbalanciert worden sein.

⇒ AVL-Baum:

Der AVL-Baum (benannt nach Georgi MaximowitschAdelson-Velski und Jewgeni MichailowitschLandis) ist ein höhenbalancierter Binärbaum bei dem sich die Höhe zweier benachbarter Teilbäume um höchstens eins

unterscheidet. Dies wird erreicht indem der Baum beim Einfügen von Elementen neu balanciert wird (Stichwort:Links- und Rechtsrotation) und erlaubt alle Operationen in höchstensO(log(n)).

Es gibt noch viele Weitere . . .

111

(5)

Binäre Suchbäume - Traversierung

• Es gibt verschiedene Möglichkeiten einen Binärbaum zu traversieren.

• in-order (= Reihenfolge der Werte im Baum):

linker Teilbaum → Wurzel → rechter Teilbaum

⇒ 8 10 12 15 20 22

• pre-order (Tiefensuche):

Wurzel → linker Teilbaum → rechter Teilbaum

⇒ 15 10 8 12 20 22

• post-order :

linker Teilbaum → rechter Teilbaum → Wurzel

⇒ 8 12 10 22 20 15

112

(6)

Binäre Suchbäume - An den Rechner... fertig... los...

Jetzt: Implementierung eines einfachen Binärbaums.

⇒ Implementierung der vordefinierten Header-Datei

⇒ Queue als Hilfstruktur gegeben

• Vergessen Sie nicht die grundlegenden Techniken zur Fehlervermeidung!

• Dokumentieren Sie ihren Code und erzeugen Sie mit Doxygen eine Dokumentation.

⇒ doxywizard oder doxygen DOXYFILE

• Suchen Sie mit Hilfe von valgrind nach Speicherlöchern

⇒ valgrind tool=memcheck leak-check=yes ./tree

113

Referenzen

ÄHNLICHE DOKUMENTE

Warum in diesen Fällen die Tankmilch und die Poolmilch positiv reagierten, war anhand der Stichproben von jeweils 60 Proben aus dem Bestand nicht erklärbar. Möglicherweise ist der

Hat sich denn hier, für ein so ernstes historisches Thema, nicht ein geeigneterer Darsteller ge- funden, oder dürfen jetzt große Deutsche nur noch degeneriert dar- gestellt

A n einem Vortragsabend des Ostpreußenblat tes in Hamburg: Themen und Referenten haben in den letzten Jahren einen interessierten Teil- nebmerkreis erschlossen Foto Victoria

 Definition AVL-Baum: Ein AVL-Baum b ist ein Binärbaum, für den gilt: Alle Knoten des Baums b erfüllen die AVL-Bedingung?.  Bemerkung: AVL-Bäume wurden 1962 von Adelson-Velski

Überlegen Sie (schriftlich!) die Gründe für die jeweiligen Änderungen der Effizienz der einzelnen Methoden. Wodurch ergeben sich die Unterschiede?.. Übung Praktische

I Ein AVL-Baum ist ein balancierter BST, bei dem für jeden Knoten die Höhe der beiden Teilbäume höchstens um 1 differiert. I Bei AVL-Bäumen wird die Höhe der Teilbäume der

ƒ Nachdem auch Person Z ihren Arbeitsauftrag erledigt hat, informiert Person X ihren Auftraggeber über die Erfüllung des Arbeitsauftrags.. ƒ Bei „Erstelle Baum mit 0 Knoten“

die etwa eine Woche Arbeitszeit beanspruchen soll, wird die Auswertung von Daten betont,.. die die Teilnehmenden in der Regel aus ihrem