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
-
callIt
-
-
callVal
-
-
drawer
- das Canvas zur Darstellung des Baumes
-
isActive
- ist der Algorithmus gerade aktiv
-
motor
- der Thread, der alles antreibt
-
pauseTime
- Zeit pro pause-Aufruf
-
tree
- Wurzel des Baumes.
-
TreeAlgorithm()
-
-
TreeAlgorithm(DrawTree)
-
-
callTreeAlg(String, int)
- Aufruf des Algorithmus über diese Methode.
-
delete(int)
- Knoten löschen, und Vorgang animieren.
-
find(int)
- Knoten suchen, und Vorgang animieren.
-
getRoot()
-
liefert Baumwurzel.
-
insert(int)
- Knoten einfügen, und Vorgang animieren.
-
isNull(Node)
-
-
isRoot(Node)
-
Test auf Wurzel
-
newTree()
- löscht den Baum
-
pause()
- kleine Pause.
-
pause(int)
- kleine Pause.
-
pauseAnimateTreeChange()
- animierter Baumwechsel.
-
pauseBlinkNode(Node)
- Pause mit blinkendem Knoten
-
pauseMarkNode(Node)
- Pause, und Knoten markieren.
-
pausePaint()
- Pause, und Baum neu malen.
-
remove(Node)
- entfernt Knoten.
-
run()
- implementiert die Funktionalität der Runnable-Klasse.
-
runMethod()
-
ruft eine der Methoden zur Veränderung des Baumes auf.
-
setPauseTime(int)
- setze die Zeit pro Pause.
-
simpleDelete(int)
- löscht einen Knoten.
-
simpleFind(int)
- sucht einen Knoten.
-
simpleInsert(int, Item)
- fügt einen neuen Knoten ein.
-
start()
- startet den Thread motor
Muss etwa vom Applet aufgerufen werden.
-
stop()
- stoppt den Thread motor
Muss etwa vom Applet aufgerufen werden.
motor
protected Thread motor
- der Thread, der alles antreibt
isActive
protected boolean isActive
- ist der Algorithmus gerade aktiv
drawer
protected DrawTree drawer
- das Canvas zur Darstellung des Baumes
callIt
protected String callIt
- See Also:
- callTreeAlg, runMethod
callVal
protected int callVal
- See Also:
- callTreeAlg, runMethod
tree
protected Node tree
- Wurzel des Baumes.
Genauer wird hier ein Dummy-Knoten abgelegt.
Die Wurzel ist tree.getLeft();
- See Also:
- getRoot
pauseTime
protected int pauseTime
- Zeit pro pause-Aufruf
- See Also:
- pause, setPauseTime
TreeAlgorithm
public TreeAlgorithm()
TreeAlgorithm
public TreeAlgorithm(DrawTree dt)
- Parameters:
- dt - Canvas zum Zeichnen des Baumes
(muss etwa im Applet erzeugt werden)
- See Also:
- DrawTree
newTree
public void newTree()
- löscht den Baum
pause
public void pause()
- kleine Pause.
pause
public void pause(int pst)
- kleine Pause.
- Parameters:
- pst - Pausenzeit
pausePaint
public void pausePaint()
- Pause, und Baum neu malen.
pauseMarkNode
public void pauseMarkNode(Node p)
- Pause, und Knoten markieren.
- Parameters:
- p - Knoten, der markiert wird
pauseBlinkNode
public void pauseBlinkNode(Node p)
- Pause mit blinkendem Knoten
- Parameters:
- p - Knoten, der blinkt
pauseAnimateTreeChange
public void pauseAnimateTreeChange()
- animierter Baumwechsel.
setPauseTime
public void setPauseTime(int pst)
- setze die Zeit pro Pause.
- Parameters:
- pst - neue Pausenzeit
- See Also:
- pause
isNull
public boolean isNull(Node p)
isRoot
public boolean isRoot(Node p)
- Test auf Wurzel
- Returns:
- ist der Knoten die Wurzel ?
getRoot
public Node getRoot()
- liefert Baumwurzel.
- Returns:
- Wurzel des Baumes
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
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
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
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
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
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
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
run
public void run()
- implementiert die Funktionalität der Runnable-Klasse.
ruft runMethod auf, solange isActive=true.
- See Also:
- runMethod
start
public void start()
- startet den Thread motor
Muss etwa vom Applet aufgerufen werden.
- See Also:
- run
stop
public void stop()
- stoppt den Thread motor
Muss etwa vom Applet aufgerufen werden.
- See Also:
- run
runMethod
protected void runMethod()
- ruft eine der Methoden zur Veränderung des Baumes auf.
Wird innerhalb von run aufgerufen
- See Also:
- run
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