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)