Liebe Freunde , ich habe wieder ein problem und zwar ...
Ich habe eine verkette Liste und möchte einen neuen element direkt am ende der Liste anhaengen ohne das die liste immer neu ermittelt wird.
Wie kann cih so was machen ? Ich muß eine Methode erstellen das mir das aktuelle Ende der Liste zurück liefert .. aber wie ?
Ich habe eine verkette Liste und möchte einen neuen element direkt am ende der Liste anhaengen ohne das die liste immer neu ermittelt wird.
Wie kann cih so was machen ? Ich muß eine Methode erstellen das mir das aktuelle Ende der Liste zurück liefert .. aber wie ?
Code:
/*######################################
* Eine verkettete Liste Version 2
######################################*/
//die Klasse für die Listenelemente
//jetzt auch mit Methoden
class Listenelement {
String daten;
Listenelement naechster;
//die Methode zum Setzen der Daten
void setDaten(String datenNeu) {
//die Zeichenkette setzen
daten = datenNeu;
//das Ende markieren
naechster = null;
}
//die Methode zum Anhängen eines neuen Elements
//sie ruft sich rekursiv auf, bis das Ende erreicht ist
void anhaengen(String datenNeu) {
//wenn das Ende erreicht ist, ein neues Element erzeugen
if (naechster == null) {
naechster = new Listenelement();
naechster.setDaten(datenNeu);
}
//sonst ruft sich die Methode selbst wieder auf
else
naechster.anhaengen(datenNeu);
//nur zur Veranschaulichung
System.out.println("Daten " + datenNeu + " wurden eingefügt.");
}
//die Methode zur Ausgabe der Liste
//sie ruft sich ebenfalls rekursiv auf, bis das Ende erreicht ist
void ausgeben() {
System.out.println(daten);
if (naechster != null)
naechster.ausgeben();
}
}
public class Java05_10 {
public static void main(String[] args) {
//ein neues Listenelement erzeugen
Listenelement listenAnfang = new Listenelement();
Listenelement listenEnde = new Listenelement();
//die Daten im ersten Listenelement setzen
listenAnfang.setDaten("Element 1");
//weitere Elemente in einer Schleife einfügen
for (int element = 2; element < 4; element++)
listenAnfang.anhaengen("Element " + element);
listenEnde.anhaengen(null);
//die Liste ausgeben
listenAnfang.ausgeben();
}
}