Hi,
ich muss für die Uni ne doppelt verkettete Liste in Java implementieren. Ich weiß nicht wieso meine ersten 4 Methoden nicht korrekt funktionieren. Würde mich über Tipps und Anregungen freuen.
Die Klasse für die Elemente könnt ihr euch ja dazu denken. Der Konstruktor der Elemente sieht so aus:
Und hier meine ListenMethoden:
:rtfm:
ich muss für die Uni ne doppelt verkettete Liste in Java implementieren. Ich weiß nicht wieso meine ersten 4 Methoden nicht korrekt funktionieren. Würde mich über Tipps und Anregungen freuen.
Die Klasse für die Elemente könnt ihr euch ja dazu denken. Der Konstruktor der Elemente sieht so aus:
Java:
public ListElement(String content, ListElement prev, ListElement next){
this.content = content;
this.next = next;
this.prev = prev;
}
Und hier meine ListenMethoden:
Java:
void addFirst(String value) {
if (first == null) { //falls Liste leer ist
ListElement newFirst = new ListElement(value, null, null);
first = newFirst;
last = first;
} else { //falls nicht
ListElement newFirst = new ListElement(value, null, first);
first.setPrev(newFirst);
first = newFirst;
}
size++;
}
void addLast(String value) {
if (first == null) { //falls Liste leer ist
addFirst(value);
} else { //falls nicht
ListElement newLast = new ListElement(value, last, null);
newLast.setPrev(last);
last = newLast;
}
size++;
}
void add(int index, String value) {
ListElement currentElement = this.first;
int i = 0;
while (i < index) {
if (currentElement.getNext() != null) {
currentElement = currentElement.getNext();
}
i++;
}
if (currentElement.getPrev() == null) {
this.addFirst(value);
}
if (currentElement.getNext() == null) {
this.addLast(value);
}
ListElement prevElement = currentElement.getPrev();
ListElement newElement = new ListElement(value, prevElement,
currentElement);
currentElement.setPrev(newElement);
prevElement.setNext(newElement);
size++;
}
String get(int index) {
ListElement currentElement = this.first;
int i = 0;
while (i <= index && currentElement.getNext() != null) {
currentElement = currentElement.getNext();
i++;
}
return currentElement.getContent();
}
:rtfm:
Zuletzt bearbeitet: