AVL Bäume - Projektbeschreibung
Im Rahmen der Vorlesung "Objektorientierte Programmierung" an der Fachhochschule Regensburg wurde im WS 2000/2001 unter der Leitung von Prof. Juergen Sauer oben ersichtliches Java-Applet erstellt. Es dient zur Simulation von AVL Bäumen.
Was ist ein AVL Baum?
Benannt nach den Anfangsbuchstaben seiner Entdecker (Adelson, Velskii und Landis) gehört der AVL Baum zu der Gruppe der dynamisch
ausgeglichenen Binärbäume. Ein Baum hat die AVL-Eigenschaft, wenn in jedem Knoten sich die Höhen der beiden Unterbäume höchstens
um 1 unterscheiden. Diese Eigenschaft stellt sicher, daß ein Baum nicht in eine lineare Liste entartet.
Was ist so kompliziert an AVL Bäumen?
Damit die AVL-Eigenschaft erhalten bleibt, muß nach jedem Einfügen oder Löschen geprüft werden ob in jedem Knoten die Eigenschaft erfüllt ist.
Ist dies nicht der Fall, sind komplizierte Rotationen bzw. Doppelrotationen notwendig. Um den Einstieg in diese Thematik zu erleichtern, wurde dieses Applet konzipiert. Es ermöglicht das Einfügen, Suchen und Löschen von Baumknoten
und zeigt die erforderlichen Schritte und Rotationen in grafischer Form.
Wie ist das Applet aufgebaut? Wie funktioniert es?
Die GUI des Applets teilt sich in folgende drei Bereiche: (auch in obiger Abbildung ersichtlich)
Im Viewer sind alle Animationen grafisch ersichtlich. Die Zoomfunktionen im Viewer-Control ermöglichen eine optimale Größenanpassung und gewährleisten somit eine übersichtliche Darstellung auch bei einer großen Anzahl von Baumknoten.
In der History werden alle erforderlichen Schritte dokumentiert um jeden Vorgang Schritt für Schritt nachvollziehen zu können.Die eigentliche Bedienung und Steuerung des Applets erfolgt über die ihm Control platzierten Eingabefelder, Buttons und Auswahlboxen.
Diese stellen folgende Funktionalität zur Verfügung:
Um die Standardsituationen "Einfachrotation" und Doppelrotation" zu erzwingen, ist das Einfügen der Knoten in einer bestimmten Reihenfolge erforderlich. Die folgenden Schaltflächen entbinden den Anwender von dieser Aufgabe:
Die auf dem Viewer ersichtliche Animation kann jederzeit angehalten, weitergeführt und abgebrochen werden. Dies erfolgt mit den entsprechenden Buttons:
Darüberhinaus kann die Animation im Einzelschrittmodus erfolgen. Wird diese Option gewählt, so wird die Animation nach allen signifikanten Ereignissen (Einfügen, Rotieren, Balanceänderungen) angehalten. Die Animation wird dann mit dem Button weiter fortgesetzt.
Release-Note:
Das Applet wurde von uns mit diversen Browsern auf verschiedenen Plattformen getestet. Dabei sind uns einige Dinge aufgefallen, die ihr auf der FAQ-Seite nachlesen koennt.
Soviel sei aber bereits hier gesagt: Das Applet läuft mit dem Microsoft Internet Explorer 5.x am schnellsten (dank JIT-Compiler). Am saubersten läuft es allerdings im AppletViewer oder Netscape unter Linux.
Allgemein gilt: Um das Applet ausführen zu können ist mindestens ein Browser mit Unterstützung für JDK1.1.x notwendig. (z.B. Netscape Communicator 4.x oder Internet Explorer 5.x)
Das Autorenteam wünscht viel Spaß :-))