Java Einfach verkettete Liste Element einfügen

Schnuffix10

Cadet 2nd Year
Registriert
Okt. 2013
Beiträge
24
Hey :)

Ich hoffe mir kann jemand helfen.
Wie kann ich im Beispielcode unten denn ein Element nach dem „Kopf“ einfügen?

Ich steh dabei gerade total auf n Schlauch…
In C würde ich das ganze über
Code:
Konstruktor und Pointer realisieren....

vielen lieben Dank :)



class ListElement
{
String Name;
ListElement next;


ListElement(String Name, ListElement next) {
this.Name = Name;
this.next = next;
}


ListElement(String Name) {
this(Name, null);
}

}
 
Bei einer einfach verketteten Liste kennst du immer das erste und das letzte Element der Liste.
Zur Not auch nur das Erste und dann durchiterieren bis zum letzten Element, welches als "next" eben "null" hat.
Ein neues Element anfügen ist dann der Vorgang, dem bis dato letzten Element mitzuteilen, dass sein "next" Element das neue Element ist. Das neue Element ist dann das letzte Element und hat als "next" eben "null". Wenn das Listenobjekt jeweils den Kopf und den Schwanz kennt, dann muss noch der Schwanz neu definiert werden als das neue Element.
 
Wenn du eine der util-libraries importierst, musst du dich nicht mehr darum kümmern. Dann kannst du einfach ne Liste/Arrayliste<Klasse> erstellen usw. (oder gleich alle, "import java.util.*")

Wenn manuell, brauchst du eine Listenklasse.
 
drckeberger schrieb:
Wenn du eine der util-libraries importierst, musst du dich nicht mehr darum kümmern. Dann kannst du einfach ne Liste/Arrayliste<Klasse> erstellen usw. (oder gleich alle, "import java.util.*")

Wenn manuell, brauchst du eine Listenklasse.
Danke für den Tipp.
Ich kenn diese generische Möglichkeit, muss aber zuerst diese obrige Version abarbeiten.
Nein ist keine Hausaufgabe, ein Ausschnitt einer alten Prüfung.


WingX schrieb:
Ein neues Element anfügen ist dann der Vorgang, dem bis dato letzten Element mitzuteilen, dass sein "next" Element das neue Element ist. Das neue Element ist dann das letzte Element und hat als "next" eben "null".
Jup. Genau hier fehlt mir der Ansatz bei Java

Vielleicht jemand einen Anstoß? :(

Aber danke euch beiden schonmal für die Antwort ;)
 
Das funktioniert in Java genauso wie in C++, du hast eine Klasse Item, welche beliebige (private) Werte sowie ein Element "next" vom Typ Item hat. Eventuell hat sie auch noch Getter und Setter für diese Werte und das "next"-Element.
Die Klasse LinkedList hat ein Element "head" vom Typ Item. Wenn man eine Liste anfängt, erzeugt man ein neues Objekt des Typs Item und definiert den "head" der LinkedList als ebendieses. Wenn man ein Element anhängen möchte, erzeugt man ebenfalls ein neues Objekt vom Typ Item und definiert LinkedList.head.next als das neue Element.
Eigentlich einfach :)

Hier noch ein Link, der es ganz gut beschreibt: http://www.codeadventurer.de/?p=1844
 
Zuletzt bearbeitet: (link)
Ich versteh Dein Anliegen ehrlich gesagt nicht ganz. Was ist mit:

Code:
ListElement e2 = new ListElement("Element 2");
ListElement e1 = new ListElement("Element 1", e2);
 
Zurück
Oben