28.3 ListeLIFO
 
UML


 

LIFO

LIFO steht für Last In First Out. Bei einer LIFO-Liste wird bei der Ausgabe immer das zu letzt eingegebene Element als erstes wieder ausgegeben. Dabei kann man Ausgaben sich ruhig verallgemeinert als irgendwelche Jobs vorstellen. Eine LIFO-Liste lässt sich dann mit einem Stapel auf einem Schreibtisch vergleichen. Neue Jobs werden oben aufgelegt und von oben wird auch abgearbeitet. Der letzte Auftrag ist also der, der als erster erledigt wird. Wollte man diese Liste mit einem Motto beschreiben, so könnte diese „Die Ersten werden die Letzten sein“ heißen.
 

Quelltext

Download:
ListeLIFO.java

package adt;

public class ListeLIFO  extends Liste {

    public void haengeAn(Object wert) {
        Element neu = new Element(wert);
        if (kopf != null)
            neu.setNaechstes(kopf);
        kopf = neu;
    }
}
 

Das beim Aufruf der Methode haengeAn(..) übergebene Objekt wird im erzeugten Element-Objekt neu abgelegt. Ist die Bedingung der if-Anweisung kopf !=null falsch, zeigt also der von Liste geerbte kopf auf null, und somit die Liste leer, so wird kopf auf neu gesetzt (kopf = neu;), die Liste erhält ihren ersten Eintrag. Anders die Situation, wenn die Liste nicht mehr leer ist, dann werden folgende Anweisungen durchgeführt:

neu.setNaechstes(kopf);
kopf = neu;

Schauen wir uns den Vorgang Schritt für Schritt an. Nach dem Erzeugen des Element-Objektes neu haben wir die folgende Situation:
 

 

 

neu.naechstes zeigt noch auf null. Diese Referenz soll nun auf das Element kopf zeigen. Dies geschieht mit neu.setNaechstes(kopf);

 

Schließlich soll kopf wieder das erste Element sein. Also benötigen wir auch hier die Programmzeile kopf = neu;

zu

28.4 ListenFIFO
zur Startseite www.pohlig.de  (C) MPohlig 2004