Class TreeAlgorithm

java.lang.Object
   |
   +----TreeAlgorithm

public class TreeAlgorithm
extends Object
implements Runnable
Die Grundklasse für alle Baumalgorithmen. Diese Klasse implementiert die gesamte Funktionalität zu graphischen Darstellung verschiedener binärer Suchbäume

See Also:
AVLAlgorithm

Variable Index

 o callIt
 o callVal
 o drawer
das Canvas zur Darstellung des Baumes
 o isActive
ist der Algorithmus gerade aktiv
 o motor
der Thread, der alles antreibt
 o pauseTime
Zeit pro pause-Aufruf
 o tree
Wurzel des Baumes.

Constructor Index

 o TreeAlgorithm()
 o TreeAlgorithm(DrawTree)

Method Index

 o callTreeAlg(String, int)
Aufruf des Algorithmus über diese Methode.
 o delete(int)
Knoten löschen, und Vorgang animieren.
 o find(int)
Knoten suchen, und Vorgang animieren.
 o getRoot()
liefert Baumwurzel.
 o insert(int)
Knoten einfügen, und Vorgang animieren.
 o isNull(Node)
 o isRoot(Node)
Test auf Wurzel
 o newTree()
löscht den Baum
 o pause()
kleine Pause.
 o pause(int)
kleine Pause.
 o pauseAnimateTreeChange()
animierter Baumwechsel.
 o pauseBlinkNode(Node)
Pause mit blinkendem Knoten
 o pauseMarkNode(Node)
Pause, und Knoten markieren.
 o pausePaint()
Pause, und Baum neu malen.
 o remove(Node)
entfernt Knoten.
 o run()
implementiert die Funktionalität der Runnable-Klasse.
 o runMethod()
ruft eine der Methoden zur Veränderung des Baumes auf.
 o setPauseTime(int)
setze die Zeit pro Pause.
 o simpleDelete(int)
löscht einen Knoten.
 o simpleFind(int)
sucht einen Knoten.
 o simpleInsert(int, Item)
fügt einen neuen Knoten ein.
 o start()
startet den Thread motor Muss etwa vom Applet aufgerufen werden.
 o stop()
stoppt den Thread motor Muss etwa vom Applet aufgerufen werden.

Variables

 o motor
 protected Thread motor
der Thread, der alles antreibt

 o isActive
 protected boolean isActive
ist der Algorithmus gerade aktiv

 o drawer
 protected DrawTree drawer
das Canvas zur Darstellung des Baumes

 o callIt
 protected String callIt
See Also:
callTreeAlg, runMethod
 o callVal
 protected int callVal
See Also:
callTreeAlg, runMethod
 o tree
 protected Node tree
Wurzel des Baumes. Genauer wird hier ein Dummy-Knoten abgelegt. Die Wurzel ist tree.getLeft();

See Also:
getRoot
 o pauseTime
 protected int pauseTime
Zeit pro pause-Aufruf

See Also:
pause, setPauseTime

Constructors

 o TreeAlgorithm
 public TreeAlgorithm()
 o TreeAlgorithm
 public TreeAlgorithm(DrawTree dt)
Parameters:
dt - Canvas zum Zeichnen des Baumes (muss etwa im Applet erzeugt werden)
See Also:
DrawTree

Methods

 o newTree
 public void newTree()
löscht den Baum

 o pause
 public void pause()
kleine Pause.

 o pause
 public void pause(int pst)
kleine Pause.

Parameters:
pst - Pausenzeit
 o pausePaint
 public void pausePaint()
Pause, und Baum neu malen.

 o pauseMarkNode
 public void pauseMarkNode(Node p)
Pause, und Knoten markieren.

Parameters:
p - Knoten, der markiert wird
 o pauseBlinkNode
 public void pauseBlinkNode(Node p)
Pause mit blinkendem Knoten

Parameters:
p - Knoten, der blinkt
 o pauseAnimateTreeChange
 public void pauseAnimateTreeChange()
animierter Baumwechsel.

 o setPauseTime
 public void setPauseTime(int pst)
setze die Zeit pro Pause.

Parameters:
pst - neue Pausenzeit
See Also:
pause
 o isNull
 public boolean isNull(Node p)
 o isRoot
 public boolean isRoot(Node p)
Test auf Wurzel

Returns:
ist der Knoten die Wurzel ?
 o getRoot
 public Node getRoot()
liefert Baumwurzel.

Returns:
Wurzel des Baumes
 o remove
 public void remove(Node p)
entfernt Knoten. Korrekt entfernt werden nur Knoten, die mindestens ein Blatt als Sohn haben.

Parameters:
p - zu entfernender Knoten
 o simpleInsert
 public Node simpleInsert(int key,
                          Item it)
fügt einen neuen Knoten ein. Eingefügt wird wie beim simplen Suchbaum (ohne Balancierung)

Parameters:
key - Schlüssel des neuen Knotens
it - Item im Knoten
Returns:
neu eingefügter Knoten
 o simpleDelete
 public Node simpleDelete(int key)
löscht einen Knoten. Gelöscht wird wie beim simplen Suchbaum (ohne Balancierung)

Parameters:
key - Schlüssel des zu löschenden Knotens.
Returns:
der gelöschte Knoten, null wenn nicht vorhanden
 o simpleFind
 public Node simpleFind(int key)
sucht einen Knoten.

Parameters:
key - Schlüssel nach dem gesucht wird
Returns:
der (ein) Knoten mit Schlüssel key, null wenn nicht vorhanden
 o insert
 public void insert(int key)
Knoten einfügen, und Vorgang animieren. Diese Methode ist von Unterklassen (bei Bedarf) zu überschreiben. Hier wird nur simpleInsert aufgerufen.

Parameters:
key - Schlüssel des neuen Knotens
See Also:
insert
 o delete
 public void delete(int key)
Knoten löschen, und Vorgang animieren. Diese Methode ist von Unterklassen (bei Bedarf) zu überschreiben. Hier wird nur simpleDelete aufgerufen.

Parameters:
key - Schlüssel des zu löschenden Knotens
See Also:
delete
 o find
 public void find(int key)
Knoten suchen, und Vorgang animieren. Diese Methode muss von Unterklassen eigentlich nicht überschrieben werden, die Suchfunktionalität ist immer gleich. Hier wird simpleFind aufgerufen.

Parameters:
key - Schlüssel des zu suchenden Knotens
See Also:
delete
 o run
 public void run()
implementiert die Funktionalität der Runnable-Klasse. ruft runMethod auf, solange isActive=true.

See Also:
runMethod
 o start
 public void start()
startet den Thread motor Muss etwa vom Applet aufgerufen werden.

See Also:
run
 o stop
 public void stop()
stoppt den Thread motor Muss etwa vom Applet aufgerufen werden.

See Also:
run
 o runMethod
 protected void runMethod()
ruft eine der Methoden zur Veränderung des Baumes auf. Wird innerhalb von run aufgerufen

See Also:
run
 o callTreeAlg
 public void callTreeAlg(String ci,
                         int cv)
Aufruf des Algorithmus über diese Methode.

Parameters:
ci - Methodenname : insert,delete,find
cv - Schlüsselwert als Parameter
See Also:
insert, delete, find