Animationen zu Kap. 4.3: AVL-Bäume

Slides:



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

Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Suchbäume unterstützen alle unten angegebenen Operationen für dynamische Mengen K effizient: Search(K ,k) ---- Suche ein Element x von K mit Schlüssel.
Der k-d-Baum Richard Göbel.
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
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
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Algorithmen und Datenstrukturen
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
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
Sortieren mit Binären Bäumen
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 19 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) 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 (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 (17 – Fibonacci-Heaps – Analyse) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
WS Algorithmentheorie 15 – Fibonacci-Heaps Tobias Lauer.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – Bruder-Bäume, B-Bäume) Prof. Th. Ottmann.
Informatik II – Kapitel 13
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
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-
Minimum Spanning Tree: MST
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.
Petra Mutzel: DAP2, Universität Dortmund SS Rotationen (1) b(5)=2 b(7)=0 b(7)=1 5 ist unbalanciert5, 7, 8 sind balanciert b(5)=0 Rotation nach.
2. Die rekursive Datenstruktur Baum 2
Effiziente Algorithmen
Diskrete Mathematik II
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Animation von Dijkstra
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Beispielanimation Heap-Sort
Animation von Dijkstra
Binäre Bäume Louis Moret und Reto Huber, 5. 11
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 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 Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
AVL-Bäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Animationen zu Kap. 4.3: AVL-Bäume Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 12. VO DAP2 SS 2009 28. Mai 2009 1

Rotationen (1) bal(5)=2 bal(7)=0 5 5 bal(7)=1 7 7 bal(5)=0 8 8 Beispiel 1: bal(5)=2 bal(7)=0 5 5 Rotation nach links an 5 bal(7)=1 7 7 bal(5)=0 8 8 5 ist unbalanciert 5, 7, 8 sind balanciert

falsch: die 6 muss mitwandern Rotationen (2) Beispiel 2: bal(5)=2 5 5 Rotation nach links an 5 bal(7)=0 7 7 6 8 6 8 falsch: die 6 muss mitwandern 5 ist unbalanciert 5, 7, 8 sind balanciert

Rotationen (3) bal(5)=2 bal(7)=-1 5 5 bal(5)=1 bal(7)=0 6 7 7 6 8 6 8 nach links an 5 bal(7)=0 6 7 7 6 8 6 8 so korrekt! Warum eigentlich? falsch: die 6 muss mitwandern 5 ist unbalanciert 5, 7, 8 sind balanciert Die Suchbaumeigenschaft bleibt bei einer Rotation erhalten. Nach einer Rotation entsteht wieder ein binärer Suchbaum Achtung: dies ist nicht so wenn gleiche Schlüssel enthalten sind

Rotationen (4) bal(5)=2 bal(8)=0 5 5 bal(8)=-1 8 8 bal(5)=0 7 7 Beispiel 3: bal(5)=2 bal(8)=0 5 5 Rotation nach links an 5 bal(8)=-1 8 8 bal(5)=0 7 7 5 ist unbalanciert falsch: Das war keine Rotation!!!

Rotationen (5) bal(5)=2 bal(8)=-2 5 5 bal(8)=-1 8 8 bal(5)=1 7 7 nach links an 5 bal(8)=-1 8 8 bal(5)=1 7 7 5 ist unbalanciert Diese Rotation hat nichts genützt!

Rotationen (6) bal(5)=2 bal(7)=0 bal(5)=2 5 5 5 bal(8)=-1 8 bal(7)=1 8 nach rechts an 8 Rotation nach links an 5 Doppelrotation Rechts-Links notwendig!

Doppelrotationen u a b v d u c a b v d u c v d b a c

falsch: die 6 muss mitwandern Rotationen (2) d(5)=2 d(7)=0 5 5 Rotation nach links an 5 d(7)=0 7 7 d(5)=0 6 8 6 8 falsch: die 6 muss mitwandern 5 ist unbalanciert 5, 7, 8 sind balanciert 7 8

Definition AVL-Ersetzung: Operation (z.B Insert, Delete), die einen Unterbaum T eines Knotens z durch einen modifizierten AVL-Baum ersetzt, dessen Höhe um höchstens 1 von der Höhe von T abweicht.

Rebalancierung Wir betrachten einen AVL-Baum unmittelbar nach einer AVL-Ersetzung (Einfügung bzw. Entfernens eines Knotens). Sei u ein unbalancierter Knoten maximaler Tiefe, d.h. bal(u)∈{-2,+2}. Sei T der maximale Unterbaum mit Wurzel u in T. Wir unterscheiden vier verschiedene Situationen.

1. Fall: bal(u)=-2 Sei v das linke Kind von u (existiert!) Fall 1.1: bal(v)∈{-1,0}: Rotation nach rechts an u v u C A B bal(u)=-2 B v C u A bal(v)∈{0,1} Rotation nach rechts Wir wissen: h(C)=h(A)-1 und h(B)=h(A) oder h(A)-1 Suchbaumeigenschaft bleibt erhalten; u und v sind balanciert Für die Knoten unterhalb hat sich nichts geändert.

1. Fall: bal(u)=-2 Sei v das linke Kind von u (existiert!) Fall 1.1: bal(v)∈{-1,0}: Rotation nach rechts an u v u C A B bal(u)=-2 B v C u A bal(v)∈{0,1} Rotation nach rechts Wir wissen: h(C)=h(A)-1 und h(B)=h(A) oder h(A)-1 Suchbaumeigenschaft bleibt erhalten; u und v sind balanciert Für die Knoten unterhalb hat sich nichts geändert.

1. Fall: bal(u)=- 2 ff. Sei v das linke Kind von u (existiert!) Fall 1.2: bal(v)=+1: Links-Rechtsrotation an u v u D A bal(u)=-2 B C w bal(v)=1 A v w D B C u Links- rotation an v dann Rechts- an u u, v und w sind balanciert h(D)=h(A) und ( h(B)=h(A) oder h(C)=h(A) )

1. Fall: bal(u)=- 2 ff. Sei v das linke Kind von u (existiert!) Fall 1.2: bal(v)=+1: Links-Rechtsrotation an u v u D A bal(u)=-2 B C w bal(v)=1 A v w D B C u Links- rotation an v dann Rechts- an u u, v und w sind balanciert h(D)=h(A) und ( h(B)=h(A) oder h(C)=h(A) )

2 + 1. Fall: bal(u)= -2 Sei v das linke Kind von u (existiert!) Fall 1.1: bal(v)∈{-1,0}: Rotation nach rechts an u rechte 2 {0,1} v u C A B bal(u)=-2 bal(u)=2 B v C u A Rotation nach rechts links h(C)=h(A)-1 und h(B)=h(A) oder h(B)=h(A)-1 Inorder-Reihenfolge bleibt erhalten und u und v sind balanciert Für die Knoten unterhalb hat sich nichts geändert.

2 + 1. Fall: bal(u)= - 2 ff. Sei v das linke Kind von u (existiert!) Fall 1.2: bal(v)=+1: Links-Rechtsrotation an u rechte rechte 2 -1 Rechts-Links v u D A bal(u)=-2 B C w bal(v)=-1 v w D A B C u bal(u)=2 bal(u)=2 Rechts- Links- rotation an v dann Rechts- an u Links- u, v und w sind balanciert h(D)=h(A) und ( h(B)=h(A) oder h(C)=h(A) )

Rebalancierung ff. Seien T der maximale Unterbaum mit Wurzel u in T vor der Rebalancierung, T´ der gleiche Teilbaum nach einer einfachen Rotation und T´´ nach einer Doppelrotation. Für die einfache Rotation gilt: h(T´)-h(T)∈{-1,0} Im Falle der Doppelrotation gilt: h(T´)-h(T) ∈{-1,0} Alle Transformationen (Einfach- und Doppelrotationen) kann man also als eine AVL-Ersetzung auffassen.

Rebalancierung ff. Nach der AVL-Ersetzung gilt: Die Unterbäume mit Wurzel u und v sind danach balanciert. Für die Unterbäume unterhalb hat sich die Balancierung nicht geändert. Bestimme nun den nächsten unbalancierten Knoten maximaler Tiefe. Diese Tiefe ist nun kleiner als vorher. Wiederhole die Rebalancierung (AVL-Ersetzung) solange, bis alle Knoten balanciert sind. Das Verfahren konvergiert nach O(h(T)) Iterationen zu einem gültigen AVL-Baum.

Rebalancierung ff. Implementierungen: Die Insert-Operation unterscheidet sich nur insofern von der Delete-Operation, dass hier ein einziger Rebalancierungsschritt genügt. Bei der Delete-Operation hingegen kann es sein, dass mehrere Rebalancierungsschritte notwendig sind. Implementierungen: