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

Constructor Index

 o AVLAlgorithm(DrawTree)

Method Index

 o adjustDepth(Node)
Passt die Tiefeninformation in einem Knoten an.
 o delete(int)
Löschen.
 o insert(int)
Einfügen.
 o rebalance(Node)
Balanciert den Baum.
 o rotate(Node)
AVL-Rotation.

Constructors

 o AVLAlgorithm
 public AVLAlgorithm(DrawTree dt)

Methods

 o 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
 o 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
 o 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
 o 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
 o 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