// // // verketteteListe // // import java.util.*; public class verketteteListe { private ListenElement Kopf, Ende, Aktuell; public verketteteListe() { Kopf=Ende=Aktuell=null; } public void zumAnfang() { Aktuell=Kopf; } public void zumEnde() { Aktuell=Ende; } public Object aktuellesElement() { return Aktuell.Inhalt; } public Object naechstesElement() { if (istLeer()) return null; if(Aktuell.next!=null) Aktuell=Aktuell.next; return Aktuell.Inhalt; } public Object Vorschau() { if (istLeer()) return null; if (Aktuell.next!=null) return Aktuell.next.Inhalt; else return Aktuell.Inhalt; } public void vorneEinfuegen(Object o) { ListenElement l=new ListenElement(o,Kopf); if (istLeer()) // leere Liste Kopf=Ende=Aktuell=l; else { Kopf=Aktuell=l; } } public void einfuegen(Object o) { if (istLeer()) //leere Liste { vorneEinfuegen(o); return; } ListenElement neu=new ListenElement(o,Aktuell.next); Aktuell.next=neu; if (Aktuell==Ende) //hinten an der Liste angefügt Ende=neu; } public Object aktuellesEntfernen() { if (istLeer()) //leere Liste return null; ListenElement entferne=Aktuell, temp=Kopf; if (entferne==Kopf) //erstes Element entfernen { Kopf=Kopf.next; Aktuell=Kopf; } else { while (temp.next!=entferne) temp=temp.next; //Vörgänger von entferne in temp temp.next=Aktuell.next; Aktuell=temp; } return entferne.Inhalt; } public boolean istLeer() { return (Kopf==null); } public int gibLänge() { int Länge=0; ListenElement temp=Kopf; if (istLeer()) return 0; while (temp!=null) { Länge++; temp=temp.next; } return Länge; } }
© Ralph-Erich Hildebrandt, 26. November 2004