Hallo,
dieser Code macht eine Doppelt verkettete Liste und funktioniert NUR in einer zeile komme ich nicht klar =) ...
In Z25 da steht
, das geht irgendwie nicht weil das Objekt current nicht erzeugt wurde mit dem "new" ...
Es soll ja einen zeiger darstellen aber ich verstehe auch nicht so recht woher dieses Mysteriöse current jetzt weiss wer sein vorgänger und wer sein nachfolger ist aber das habe ich mal einfach so als fakt hingenommen ...
Also wenn current kein Objekt ist was ists dann ?!
dieser Code macht eine Doppelt verkettete Liste und funktioniert NUR in einer zeile komme ich nicht klar =) ...
Java:
public class DoppeltVerketteteListe<T> {
private class ListElem {
T data;
ListElem next;
ListElem prev;
public ListElem(T data) {
this.data = data;
}
}
private ListElem head;
private ListElem tail;
public Liste() {
head = null;
tail = null;
}
public void add(T data, int i) {
ListElem newElem = new ListElem(data);
//leere Liste, kann nach Aufgabenstellung auch weggelassen werden
if(head == null) {
head = newElem;
tail = newElem;
}
//Liste hat mind. 1 Element
else {
ListElem current = head;
int currentIdx = 0;
while(current.next != null && currentIdx < i) {
current = current.next;
currentIdx++;
}
//i <= Listenlaenge
if(currentIdx >= i) {
newElem.next = current;
newElem.prev = current.prev;
newElem.next.prev = newElem;
if(current == head)
head = newElem;
else
newElem.prev.next = newElem;
}
//i > Listenlaenge
else {
newElem.prev = current;
newElem.prev.next = newElem;
tail = newElem;
}
}
}
}
In Z25 da steht
Java:
ListElem current = head;
Es soll ja einen zeiger darstellen aber ich verstehe auch nicht so recht woher dieses Mysteriöse current jetzt weiss wer sein vorgänger und wer sein nachfolger ist aber das habe ich mal einfach so als fakt hingenommen ...
Also wenn current kein Objekt ist was ists dann ?!