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 Suchbaumei- genschaft 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 Teil- baum sind größer als der Schlüssel des Knotens.
• Komplexität: O(logn) (für Suchen, Einfügen und Löschen)