Processing math: 100%
C-Programmierung

Balancierte Bäume

Traversierung des Gesamtbaums | | Baumrotation

Entspricht ein Baum von der Topologie her einer Liste, so nennt man einen solchen Baum degeneriert.
Dann ist der Suchaufwand nicht besser als bei einer Liste.

Einen degenerierten Baum erhält man zum Beispiel, wenn bereits sortierte Elemente eingefügt werden.
Die einfachste Gegenstrategie zur Verhinderung der Degeneration ist das Einfügen der Elemente in einer zufälligen Reihenfolge.

Ist andererseits eine bestimmte Reihenfolge vorgegeben, so wendet man die Gegenstrategie der Balancierung an:

Dies bedeutet, dass zusätzliche Eigenschaften des binären Baums gefordert werden, welche die Degeneration verhindern. Falls nach dem Einfügen eines Elements diese Eigenschaften verletzt wurden, so wird der entstandene Baum topologisch umstrukturiert, so dass die geforderten Eigenschaften wieder erfüllt sind.

Balancierungsmethoden:

Methodegeforderte Eigenschaftmaximale Baumtiefe
AVL Bäumedie Tiefe des linken und rechten Teilbaums differiert nicht mehr als 11.44log2n
Red/Black TreesAbwechselnd Rot und Schwarz gefärbte Knoten2log2n
Random BS TreesElement mit Wahrscheinlichkeit p=1k+1 zur Wurzel machen4log2n

Weiterführende Literatur:

Weitere von Bäumen abgeleitete oder verwandte Datenstrukturen:

Sonstige Datenstrukturen:

usw.

Traversierung des Gesamtbaums | | Baumrotation

Options: