R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Eine dynamische Menge, die diese Operationen unterstützt,
Der k-d-Baum Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
Claudio Moraga; Gisbert Dittrich
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Das LCA – Problem in Suffixbäumen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
Kapitel 6. Suchverfahren
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Baumstrukturen Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Informatik II – Kapitel 13
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Minimum Spanning Tree: MST
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Animationen zu Kap. 4.3: AVL-Bäume
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Einführung in die Programmierung
Effiziente Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Binäre Bäume Louis Moret und Reto Huber, 5. 11
Vorlesung Binärer Suchbaum II-
Graphen und Bäume.
Kapitel 5: Von Datenstrukturen zu Abstrakten Datentypen
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
7 Bäume = „verzweigte Folgen“ Z.B. Stammbaum, patriarchalisch: Abraham
Binärer Baum, Binärer Suchbaum I
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Laufzeitverhalten beim Sortieren
Punkt-in-Landkarte II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Bäume Bäume gehören zu den wichtigsten Datenstrukturen: Entscheidungsbäume, Syntaxbäume, Ableitungsbäume, Codebäume, Suchbäume, ... Ein Baum ist ein azyklischer einfacher, zusammenhängender Graph, d. h. er enthält keine Schleifen und Zyklen: zwischen jedem Paar von Knoten besteht höchstens eine Kante Orientierter Baum: Ein orientierter Baum ist ein gerichteter, zusammenhängender und zyklenfreier Graph mit einem ausgezeichneten Knoten (Wurzel). Jeder Knoten im Graph ist von der Wurzel aus auf genau einem Weg erreichbar. (Vertikale Orientierung) (Orientierte) Bäume sind verallgemeinerte Listenstrukturen: Element (Knoten) hat i.a. mehrere Nachfolger (Söhne). Wurzel: einziger Knoten ohne Vorgänger Blätter: Knoten ohne Nachfolger Hier im Vordergrund: Verwendung von Bäumen zur Speicherung von Schlüsseln und Realisierung der Wörterbuchoperationen (Suchen, Einfügen, Entfernen) in Binärbäumen. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Begriffe Sei B ein Baum. Ordnung (Grad) von B: Maximale Anzahl von Nachfolgern eines Knotens Pfad der Länge k: Folge p0, ..., pk von Knoten, so daß gilt: pi Nachfolger von pi-1. Höhe eines Baums: maximaler Abstand eines Blattes von der Wurzel. Tiefe eines Knotens: Abstand zur Wurzel, d.h. Länge des Pfades von diesem Knoten bis zur Wurzel. Die Wurzel hat Niveau 0. Die Knoten auf dem Niveau i sind folglich alles Knoten mit der Tiefe i. Innere Knoten: Alle außer Blattknoten. Ein Baum der Ordnung n heißt vollständig, wenn alle Blätter dieselbe Tiefe haben und auf jedem Niveau die maximale Anzahl von Knoten vorhanden ist. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Geordnete Bäume Baum B heißt geordnet, wenn Nachfolger jedes Knotens geordnet sind (1., 2., 3. etc.; linker, rechter). Bei einem geordneten Baum bilden die Unterbäume Bi jedes Knotens eine geordnete Menge. Eine geordnete Menge von geordneten Bäumen heißt Wald. Beispiel: Arithmetischer Ausdruck a * (b - c) + d/e - Graphendarstellung (Operatorbaum) - Klammerdarstellung {+, { *, { a }, {-, { b }, { c } } }, { /, { d }, { e } } } R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Binärbäume Definition: Ein Binärbäum ist ein geordneter Baum, in dem jeder Knoten höchstens zwei Nachfolger besitzt (Ordnung 2). Ein Binärbaum ist eine endliche Menge von Elementen, die entweder leer ist oder ein ausgezeichnetes Element - die Wurzel des Baumes - besitzt und folgende Eigenschaften aufweist: - Die verbleibenden Elemente sind in zwei disjunkte Untermengen zerlegt. - Jede Untermenge ist selbst wieder ein Binärbaum und heißt linker bzw. rechter Unterbaum des ursprünglichen Baumes R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Binärbäume (2) Satz: Die maximale Anzahl von Knoten eines Binärbaumes (1) auf Stufe i ist 2i , i  0 (2) der Höhe h ist 2h+1 - 1 , h  0 R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

. . Lsohn Rsohn R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Binäre Suchbäume (natürliche Binärbäume) Suchbaumbedingung: Für jeden Knoten k eines binären Suchbaums B gilt: Die Schlüssel im linken Teilbaum von k sind sämtlich kleiner als der Schlüssel S(k) von k, und dieser wiederum ist kleiner als sämtliche Schlüssel im rechten Teilbaum von k, d.h. falls die Teilbäume nicht nur aus einem Blatt bestehen gilt (1) S(w) < S(k) für alle Knoten w im linken Teilbaum von B, (2) S(w) >=S(k) für alle Knoten w im rechten Teilbaum von B. Definition: Ein binärer Suchbaum B =<K,w,S> für eine linear geordnete Menge M ist ein geordneter, binärer Baum B =<K,w> mit einer Abbildung S: K->M von der Knotenmenge K in die Schlüsselmenge M, die die Suchbaumbedingung erfüllt. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Wörterbuchoperationen Annahme (Suchbaumbedingung): Für einen beliebigen Knoten k mit Schlüssel S(k) des Binärbaumes gilt: Alle im linken Teilbaum von k gespeicherten Schlüssel sind kleiner als S(k) und S(k) wiederum ist kleiner als alle Schlüssel im rechten Teilbaum von k. (1) Suche nach Schlüssel x: Die Suche nach einem Schlüssel x in einem Baum (Teilbaum) läuft nach folgendem rekursiven Schema ab: Man inspiziere den Wurzelknoten des Baumes. Falls x = Schlüssel des inspizierten Knotens: Suche beendet. Sonst: Falls x < Schlüssel des inspizierten Knotens: Setze Suche im linken Teilbaum fort. Falls x > Schlüssel des inspizierten Knotens: Setze Suche im rechten Teilbaum fort. Maximale Anzahl inspizierter Knoten: Tiefe des Baumes. Suche innerhalb der Knoten etwa durch lineares oder binäres Suchen zu realisieren. Da l m, ist Aufwand dafür konstant. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Wörterbuchoperationen (2) Einfügen eines Schlüssels Folge von (paarweise verschiedenen) Schlüsseln der Reihe nach in den anfangs leeren Baum so einfügen, dass immer die Suchbaumbedingung erfüllt bleibt. Schema zum Einfügen von x: Suche nach Schlüssel x. FERTIG, falls dieser gefunden. Sonst: Suche endet an einem Knoten k mit maximal einem Teilbaum (der aber den Schlüssell nicht enthalten kann). Hänge an k einen neuen Knoten rechts oder links gemäß Suchbaumbedingung an und schreibe x in den neuen Knoten ein. Das folgende Programm leider nur in PASCAL. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Programm Einfügen eines Schlüssels R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Wörterbuchoperationen (3) Entfernen eines Schlüssels Das Entfernen eines Schlüssels x gelingt nach folgendem Schema: Suche nach x. Falls x nicht gefunden STOP. Ansonsten gibt es (genau) einen Knoten k mit S(k) = x. Fälle: Knoten k ist ein Blattknoten: Entferne diesen. Knoten k hat nur einen nichtleeren Teilbaum: Entferne x aus Knoten k und mache diesen zur Wurzel des Teilbaumes. Knoten k hat zwei Teilbäume: Suche nach kleinstem Schlüssel im rechten Teilbaum B_r. Dieser liege im Knoten q mit Wert y. Ersetze den Schlüssel x des Knotens k durch y und entferne den Schlüssel y aus B_r (Fall 2, der linke Teilbaum von q ist ja leer.). R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.

Iterative Version: Durchlaufbeispiel Stapel S Current^ Aktion Ausgabe R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister). Kapitel 8: Bäume.