Class AVLAlgorithm
java.lang.Object
|
+----TreeAlgorithm
|
+----AVLAlgorithm
- public class AVLAlgorithm
- extends TreeAlgorithm
Implementation eines AVL-Baumes.
Diese Klasse erweiter TreeAlgorithm um die Funktionalität eines
AVL-Baumes, also Balancierung beim Einfügen und löschen.
Alle Routinen stellen die Operationen graphisch dar.
- See Also:
- AVLItem
-
AVLAlgorithm(DrawTree)
-
-
adjustDepth(Node)
- Passt die Tiefeninformation in einem Knoten an.
-
delete(int)
- Löschen.
-
insert(int)
- Einfügen.
-
rebalance(Node)
- Balanciert den Baum.
-
rotate(Node)
- AVL-Rotation.
AVLAlgorithm
public AVLAlgorithm(DrawTree dt)
rotate
public void rotate(Node p)
- AVL-Rotation.
Die verschiedenen Fälle werden automatisch richtig behandelt.
Ausgeführt wird nur eine einfache Rotation : Doppel-Rotationen sind
explizit durch zweimaligen Aufruf von rotate auszuführen.
- Parameters:
- p - Knoten, um den rotiert wird
- See Also:
- rebalance
adjustDepth
public void adjustDepth(Node p)
- Passt die Tiefeninformation in einem Knoten an.
Dabei wird auf die in den AVLItem's der beiden Söhne abgelegte
Information zurückgegriffen. adjustDepth ist also beginnend von Blatt
zur Wurzel auszuführen.
- Parameters:
- p - Knoten, dessen AVLItem angepasst werden soll
- See Also:
- rebalance, AVLItem
rebalance
public void rebalance(Node p)
- Balanciert den Baum.
Beginnend bei p wird der Baum bis zur Wurzel durchlaufen,
und jeder unbalancierte Knoten durch Rotation rebalanciert.
- Parameters:
- p - Knoten, ab dem der Aufstieg beginnt
- See Also:
- rotate
insert
public void insert(int key)
- Einfügen.
Diese Methode fügt einen Knoten mittels simpleInsert ein,
und rebalanciert dann den Baum mit rebalance.
- Parameters:
- key - Schlüssel des neuen Knotens
- Overrides:
- insert in class TreeAlgorithm
- See Also:
- insert, simpleInsert, rebalance
delete
public void delete(int key)
- Löschen.
Diese Methode löscht einen Knoten mittels simpleDelete,
und rebalanciert dann den Baum mit rebalance.
- Parameters:
- key - Schlüssel des zu löschenden Knotens
- Overrides:
- delete in class TreeAlgorithm
- See Also:
- delete, simpleDelete, rebalance