Übung Algorithmen und Datenstrukturen 1 [Algo] AVL (Einfügen) 2

Werbung
Wolfgang Hönig
WS 09/10
Übung Algorithmen und Datenstrukturen
Folie AVL-Bäume
1 [Algo] AVL (Einfügen)
1. i(x): neues Element als Blatt einfügen, sodass Suchbaumeigenschaft erfüllt bleibt
2. Balancewerte auf Einfügepfad Richtung Wurzel berechnen
(bn =maximale Pfadlänge rechts - maximale Pfadlänge links),
solange bn ∈ {1, 0, −1} bzw. Wurzel erreicht
3. Falls bn = −2 oder bn = 2, wähle eine Variante:
bn = −2 bn−1 = 1: Doppelrotation: L(n − 1), R(n)
bn = 2 bn−1 = −1: Doppelrotation: R(n − 1), L(n)
bn = −2 bn−1 = −1: Einfachrotation: R(n)
bn = 2 bn−1 = 1: Einfachrotation: L(n)
4. Bei Rotation abgetrennte Nachfolger wieder „normal“ in
Suchbaum einfügen
2 Bemerkungen
• Suchbaum: Für jeden Knoten gilt: alle Schlüssel im linken
Teilbaum sind kleiner und alle Schlüssel im rechten Teilbaum sind größer als der Schlüssel des Knotens.
• Komplexität: O(log n) (für Suchen, Einfügen und Löschen)
Herunterladen