//
//
// 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