AVL-Idee: Balancefaktor

Intermediate Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Ein AVL-Baum ist ein binärer Suchbaum, in dem sich die Höhen der Kindteilbäume um höchstens 1 unterscheiden. Der Balancefaktor eines Knotens ist Höhe(links) - Höhe(rechts) (oder umgekehrt; wichtig ist Konsistenz).

Nach Einfügen oder Löschen kann die Invariante gebrochen sein. Rotationen stellen sie lokal wieder her.

Ziel: Höhe bleibt $\Theta(\log n)$.

Diagram

$$|h_L - h_R| \le 1$$

Wo gebraucht

Lehrgerüst für selbstbalancierende Bäume. In der Praxis oft Rot-Schwarz (TreeMap) oder B-Bäume; die Balanceinvariante ist dieselbe Produktidee: Höhe in $O(\log n)$ halten.

Vertiefung

Ein AVL-Baum ergänzt die Suchordnung um eine lokale Höhenbedingung. Der Balancefaktor eines Knotens ist die Differenz der Höhen seiner beiden Teilbäume. Zulässig sind nur kleine Abweichungen.

Nach einer Änderung können sich Höhen entlang des Pfads zur Wurzel ändern. Andere Teilbäume bleiben unverändert. Deshalb genügt es, diesen Pfad rückwärts zu prüfen und den ersten beziehungsweise weitere verletzte Knoten zu reparieren.

Die lokale Bedingung begrenzt die globale Höhe. Der kleinste AVL-Baum einer gegebenen Höhe enthält rekursiv einen minimalen Baum der beiden vorherigen Höhen, wodurch eine Fibonacci-artige Grössenfolge entsteht.

Schwierigkeitsstufen

  1. Balancefaktoren aus Teilbaumhöhen berechnen.
  2. Betroffene Vorfahren nach einer Änderung bestimmen.
  3. Aus der Minimalgrössenrekurrenz eine logarithmische Höhe begründen.

Fallstricke

Vorzeichenkonventionen für den Balancefaktor unterscheiden sich. Entscheidend ist konsistente Verwendung; aus einem Vorzeichen allein darf ohne Definition keine Rotationsrichtung gefolgert werden.

University approvals: 0
Tasks
Question 1

Was begrenzt ein AVL-Baum lokal?

Question 2

Welche Knoten können nach dem Einfügen eines Blatts neue Höhen erhalten?

Question 3

Berechne Höhe und Balancefaktor eines Binärbaumknotens.

Hint

Math.max arbeitet direkt mit den beiden berechneten Höhen. Statische Methoden derselben Klasse werden ohne Objekt aufgerufen.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Intermediate
  • Completed: 0 users
Creator
Best
Best
BestBuddy