Hamster Dokumentation

 

Hamstername: Killer

bighamster.gif (4244 Byte)

Version: 1.51
Autor: Michael Sack

 

 

 

löscheÜberflüssiges

public void löscheÜberflüssiges()
Die Methode löscheÜberflüssiges () bewältigt zwei Aufgaben:
 
1. Es könnten sich in der Liste BewegungsFaden zwei hintereinander folgende Ecken exitsieren. Um dies herauszufinden durchläuft die Methode die Liste
vom Anfang bis zum Ende und überprüft jedes in ihr gespeicherte Objekt der Datenstruktur Feldinhalt, ob es eine Ecke darstellt ( Index i ). Wenn
dies so ist, dann überprüft sie, ob das nach diesem in der Liste BewegungsFaden folgende Objekt der Datenstruktur Feldinhalt ebenfalls eine Ecke
darstellt ( Index i+1 ). Im folgenden schreibt die Methode dann die Objekte vom Index ( i-1 ) und Index ( i+2 ) der Liste so um, dass sie vom Objekt des Index ( i-1 ) 2 mal die Methode removeLastListElement () der Datenstruktur Feldinhalt aufruft und das Objekt im Anschluss an seine ursprüngliche Stelle in der Liste wieder einträgt. Anschliessend wird die Methode remove ( i ) drei mal auf die Liste BewegungsFaden angewendet, womit die übrigen 3 Objekte
aus der Liste gelöscht werden.
 
2. Es könnte sich an der Stelle mit dem Index ( i ) eine Ecke befinden und an der Stelle mit dem Index ( i-1 ) eine kleine Ecke befinden. Wenn dies so ist holt die Methode löscheÜberflüssiges () den Nachfolger der Ecke mit dem Index ( i+1 ) aus der Liste und überprüft ihn, ob er weder eine Ecke, noch eine kleine Ecke ist. Wenn dies so ist, dann holt sie den Vorgänger der kleinen Ecke mit dem Index ( i-2 ) aus der Liste BewegungsFaden und überprüft ihn ebenfalls, ob er weder eine Ecke, noch eine kleine Ecke ist. Ist dem so, dann tut sie folgendes: Sie wendet auf das Feldinhalt Objekt mit dem Index ( i+1 ) zwei mal die Feldinhalt- Methode removeFirst () an und speichert das Objekt wieder an der Stelle ( i+1 ) in der Liste. Anschliessend wendet sie auf das Objekt mit dem Index ( i-2 ) ein mal die Feldinhalt - Methode removeLastListElement () an und speichert das Objekt wieder an der Stelle ( i-2 ) in der Liste BewegungsFaden. Zum Schluss wendet die Methode löscheÜberflüssiges () die Listenmethode remove ( i-1 ) zweimal auf die Liste BewegungsFaden an. Am Ende wird der Zeiger i wieder auf den Anfang gesetzt und die Methode löscheÜberflüssiges () durchläuft die Liste nocheinmal.
 
Die Methode ist eine experimentelle Methode. Ich habe mich jedoch dazu entschlossen sie trotzdem zu verwenden, da sie dem Hamster einiges an Wegen erspart und sehr effektiv ist.
 
 
( c) Copyright by Michael Sack 2002