Stack als Feld oder verkettete Liste

Pra_Castor

Grünschnabel
Halo,

ich bin Student und wir haben von userem Prof die Aufgabe bekommen einen Stack (LIFO Pronzip) in Java zu en. Ich kann mr aussuchen ob ich das mit Feldern oder einer verketteten Liste tun will. Ich habe keine ahnung vom en und deshalb wollte ich fragen ob mir hier nicht jemand weiterhelfen kann. Ich weis nicht wie und ich weis nicht was ich en soll.

mfG
 
Also wenn du mal eine der bekannten Suchmaschinen bemühen würdest würdest du haufenweisen Erklärungen zum Thema LIFO und Verkettete Listen finden.
 
vielen Dank, darauf bin ich ja noch gar nicht gekommen, also der Tipp ist echt GOLD wert.
Sollte man jedem hier mal schreiben, dann bräuchte man kein Forum mehr.
 
Das mein ich ernst. Solch allgemeine Fragen im Forum durchzukauen wo es auf anderen Seiten schon Haufenweise steht macht wenig sinn.

Wenn du bereits ein konkretes Problem hast, also einen bestimmten Teil von verketteten Listen z.B. nicht verstehst ist das was anderes und kann hier ja auch besprochen werden.

Ein bisschen Engagement deinerseits muss aber schon da sein.

LIFO
Verkettete Listen
 
Als verkettete Liste:

MAIN:
Java:
public class NewMain {
     
    public NewMain() {
        stack<Character> Stack=new stack<Character>();
        
        Stack.push('a');
        Stack.push('b');
        Stack.push('c');
        Stack.push('d');
        
        System.out.println(Stack.pop());
        System.out.println(Stack.pop());
        System.out.println(Stack.pop());
        System.out.println(Stack.pop());        
        System.out.println(Stack.pop());    //knoten erreicht
        
        Stack.push('d');
        
        System.out.println(Stack.pop());   
        System.out.println(Stack.pop());    //knoten erreicht
    }
    
    public static void main(String[] args) {
        new NewMain();
    }
}

DER STACK:
Java:
public class stack <T>{
    
    private obj<T> pointer=null;
    
    public void push(T o){
        if(pointer==null)pointer=new obj<T>(o);    //wurzel
        else{
            obj<T> tmp=     new obj<T>(o);
            tmp.            setNEXT(pointer);
            pointer=        tmp;
            tmp=            null;
        }
    }
    
    public T pop(){
        obj<T> tmp=         pointer;
        if(pointer==null)   return null;            //wurzel
        else                pointer=pointer.getNEXT();
        return              tmp.getELEMENT();
    }        
}

DAS ELEMENT:
Java:
public class obj <T>{
    
    private T  o;
    private obj   next=null;
    
    public obj(T ob) {
        o=ob;
    }
    
    public void     setNEXT(obj n){next=n;}
    public obj      getNEXT(){return next;}
    public T        getELEMENT(){return o;}
}

viel Spaß
 
Zurück