Binärbäume.

Slides:



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

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Das LCA – Problem in Suffixbäumen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Algorithmen und Datenstrukturen
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortieren mit Binären Bäumen
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
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.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – Bruder-Bäume, B-Bäume) Prof. Th. Ottmann.
Informatik II – Kapitel 13
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
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
2. Die rekursive Datenstruktur Baum 2
Sortieralgorithmen Sortieren von Arrays.
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
Information und Kommunikation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Ch. Turnheer/ M. Vilanova 2002
Vorlesung Binärer Suchbaum II-
Graphen und Bäume.
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Binärer Baum, Binärer Suchbaum I
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
Klausur „Diskrete Mathematik II“
AVL-Bäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Suchbäume.
Punkt-in-Landkarte II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
2.4 Durchlaufen von Bäumen
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Binärbäume

Baum Wurzel Knoten ohne Vorgänger Knoten beinhalten Daten z.B. Zahlen Ast Kante Innerer Knoten Kein Blatt Blatt Knoten ohne Nachfolger

Baum Ein Baum ist eine Datenstruktur die folgende Eigenschaften besitzt: Es gibt genau einen Knoten, der keinen Vorgänger besitzt. Dieser wird als Wurzel bezeichnet. Alle Knoten des Baumes, außer Wurzel besitzen genau einen Vorgängerknoten. Ein Baum ist eine rekursive Datenstruktur ⇒ Der Baum besteht aus einer Wurzel und einer Reihe von Teilbäumen.

Binärbaum Begriffe: Knoten, Wurzel, innerer Knoten, Blatt, Ast Binärbaum ist entweder ein leerer Baum oder er besteht aus einer Wurzel und zwei Binärbäumen.

Begriffe Knoten sind die eigentlichen Elemente, die über alle Informationen wie Daten und Zeiger zum rechten und linken Knoten verfügen. Wurzel – Dieser Knoten ist der einzige, der keinen Vorgänger besitzt. Ast = Kante. Die Knoten werden mit einem Ast verbunden. Blatt – Blätter sind Knoten, die keinen Nachfolger besitzen.

Binärer Suchbaum - Aufbau Für jeden Knoten K eines Suchbaumes gilt: Die Schlüssel im linken Teilbaum von K sind kleiner als der Schlüssel von K Die Schlüssel im rechten Teilbaum von K sind größer als der Schlüssel von K Schlüssel ist die Zahl im Knoten Was passiert, wenn eine Zahl doppelt vorkommen würde?

Binärer Suchbaum - Aufbau Für jeden Knoten K eines Suchbaumes gilt: Die Schlüssel im linken Teilbaum von K sind kleiner oder gleich als der Schlüssel von K Die Schlüssel im rechten Teilbaum von K sind größer als der Schlüssel von K

Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,2,3,1,8,9

Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,2,3,1,8,9 5 2 8 9 1 3

Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,12,3,1,8,7,15,4,3

Suchbaum erstellen Es sind folgende Schlüssel gegeben bauen Sie einen Baum 5,12,3,1,8,7,15,4,3 5 3 12 1 4 8 15 3 7

Warum Suchbaum In einem binären Suchbaum kann man Zahlen schnell finden. Finde die 9 5 2 8 9 1 3

Zeitkomplexität 5 2 8 9 1 3 Wie viele Elemente (Knoten) gab es? 6 Wie viele Vergleiche mussten wir machen? 3 Wie viele müssten wir im Besten Fall machen müssen? Wie viele im schlimmsten Fall?

Suche die Zahl 7 7 wäre rechts von 5 8 ist größer, also müsste die 7 links stehen Links ist kein Weg => 7 gibt es nicht! 5 2 8 9 1 3

Zeitkomplexität 5 2 8 9 1 3 Wie viele Vergleiche mussten wir machen? 2 Wie viele müssten wir im Besten und im schlimmsten Fall machen? Suchbaum ist effektiv beim Suchen (auch wenn die gesuchte Zahl nicht vorhanden wird).

Minimum und Maximum Den kleinsten (bzw. größten) Schlüssel im Suchbaum findet man, indem man solange in den linken (bzw. rechten) Teilbaum absteigt, bis man nicht mehr weiterkommt.

Knoten entfernen 5 2 8 9 1 3 Das einfachste: einen Blatt löschen. Wenn der Knoten ein Kind hat? Z.B. die 8. 5 2 8 9 1 3

Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 5 2 8 9 1 3

Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 3 2 8 9 1 3

Knoten entfernen Wenn der Knoten zwei Kinder hat? Z.B. die 5. Dann kommt an seiner Stelle Der rechteste Knoten von linken Teilbaum oder das linkeste Vom rechten Teilbaum. 8 2 8 9 1 3

Suchbaum erstellen 8 5 3 Was fällt Dir auf? 1 Es sind folgende Schlüssel gegeben bauen Sie einen Baum 8,5,3,1 8 5 3 Was fällt Dir auf? 1

Suchbaum ist nicht balanciert Auch dieser nicht. 6 5 8 3 1

Bäume sind ausgeglichen (balanciert) wenn für jeden Knoten gilt: Die Höhe seines linken und rechten Teilbaums unterscheidet sich höchstens um 1.

Ausgeglichene (balancierte) Bäume

Höhe der balancierten Bäume Wie hoch wird der Baum bei 255 Elementen? 5 Anzahl Ebenen Anzahl der Elemente 1 21-1 2 3 22-1 7 23-1 4 15 5 31 6 63 127 2 8 1 3 7 9 Anzahl der Ebenen ist log2(255+1). 28 = 256 Anzahl der Ebenen ist 8

Höhe der balancierten Bäume Wie hoch wird der Baum bei 9 Elementen? 5 23 = 8 24 = 16 log2(9+1) = 3,.. => Drei Ebenen voll und die 4. Ebene wurde angefangen. 3 8 1 4 7 9 1 2

Höhe der balancierten Bäume Die Höhe des balancierten Baumes bei n Elementen: log2(n+1) nach oben gerundet

Optimal balancierte Bäume Alle Levels sind vollständig besetzt (bis auf die unterste Schicht). Höhe des Baumes log2(n+1). Dies ist die minimale Höhe für alle Suchbäume: => Optimaler Zeitaufwand für Suche

Zeitkomplexität Zeitaufwand für Suche O(log n) bis zu den Blättern kommen. Der Zeitaufwand entspricht der Höhe des Baumes => log2(n+1) Es ist deutlich effektiver als in einem Array! Suchbäume werden in der Praxis oft genutzt beim Wörterbuch, oder Suche beim Google…

Aufgabe Füge in einen Baum folgende Knoten ein 6,1,9,8,4,3,7,11,2 Stelle dar, wie die 7 gesucht wird Entferne die 2,4 und 6

Traversierungen https://www.youtube.com/watch?v=xfhfRAccL2w

Traversierungen PRE-ORDER V-L-R =5 2 1 3 4 8 9 POST-ORDER L-R-V =1 4 3 2 9 8 5 IN-ORDER L-V-R =1 2 3 4 5 8 9 5 2 8 9 1 3 4

Traversierungen PRE-ORDER V-L-R =5 2 1 3 4 8 9 POST-ORDER L-R-V =1 4 3 2 9 8 5 IN-ORDER L-V-R =1 2 3 4 5 8 9 5 2 8 9 1 3 4

Gib einen balancierten Baum an Der folgende Schlüssel enthält: 12,5,3,1,8,7,15,4 Zahlen zuerst sortieren1,3,4,5,7,8,12,15 Diese Reihenfolge muss dem IN-ORDER entsprechen. Danach einen balancierten Baum zeichnen. Dann mit Zahlen füllen.

Binary Tree Sort Idee Die zu sortierende Elemente werden einfach in einem binären Suchbaumgespeichert. Um die Elemente in einer sortierten Reihenfolge zu erhalten, muss der Baum nur inorder traversiert werden.

Zeitkomplexität - Binary Tree Sort Beim Einfügen eines Elements muss im Suchbaum sein Platz gefunden werden. Suchen benötigt O(log n) Zeit. Für n Elemente wären das insgesamt O(n log n) Zeit. Die Inorder-Traversierung benötigt nur O(n). Die Gesamtlaufzeit beträgt somit O(n log n).