Hallo Leute ich bin gerade dabei bei meinem Studium Listen zu lernen, ich soll folgende Methode schreiben:
(c): Die Methode insertLastRek in der Klasse BoxListe soll eine als Parameter übergebene Box in einem neuen Listenelement kapseln und dieses am Ende der Liste einfügen. Die Methode ist hierzu überladen:die vorgegebene Version mit einem Parameter ruft die zweite Version der Methode mit zwei Parametern auf, welche rekursiv arbeiten soll. Hierzu soll die Methode stets prüfen, ob das als Parameter übergebene Element bereits das letzte, echte Element der Liste ist. Ist dies der Fall, soll die als Parameter übergebene Box mit Hilfe der Methode insert (aus Aufgabenteil (b)) in die Liste eingefügt werden. Ist dies nicht der Fall, soll die Methode sich selbst mit der Box und dem jeweils auf das als Parameter übergebene Listenelement folgende Element aufrufen.
Meine Methode sieht zur Zeit so aus:
public void insertLastRek(Box b){
insertLastRek(b, head);
}
private void insertLastRek(Box b, Listenelement e){
Listenelement t = new Listenelement(b);
Listenelement u = head.next;
while ( e !=z){
u = e;
e = e.next;
}
t = u.next;
z = t.next;
}
Wenn ich nun meine Liste mit der Methode liste.print() ausgeben möchte, passiert nichts.
Hier die Methode print()
Listenelement ele = head.next;
while ( ele !=z){
ele.box.print();
ele = ele.next;
}
}
Der Code compiliert fehlerfrei allerdings wird die Liste nicht ausgegeben, daher glaube ich, dass ich einen Fehler bei meiner Einfügmethode habe. Ich hoffe ihr könnt mir helfen. Vielen Dank!
(c): Die Methode insertLastRek in der Klasse BoxListe soll eine als Parameter übergebene Box in einem neuen Listenelement kapseln und dieses am Ende der Liste einfügen. Die Methode ist hierzu überladen:die vorgegebene Version mit einem Parameter ruft die zweite Version der Methode mit zwei Parametern auf, welche rekursiv arbeiten soll. Hierzu soll die Methode stets prüfen, ob das als Parameter übergebene Element bereits das letzte, echte Element der Liste ist. Ist dies der Fall, soll die als Parameter übergebene Box mit Hilfe der Methode insert (aus Aufgabenteil (b)) in die Liste eingefügt werden. Ist dies nicht der Fall, soll die Methode sich selbst mit der Box und dem jeweils auf das als Parameter übergebene Listenelement folgende Element aufrufen.
Meine Methode sieht zur Zeit so aus:
public void insertLastRek(Box b){
insertLastRek(b, head);
}
private void insertLastRek(Box b, Listenelement e){
Listenelement t = new Listenelement(b);
Listenelement u = head.next;
while ( e !=z){
u = e;
e = e.next;
}
t = u.next;
z = t.next;
}
Wenn ich nun meine Liste mit der Methode liste.print() ausgeben möchte, passiert nichts.
Hier die Methode print()
Listenelement ele = head.next;
while ( ele !=z){
ele.box.print();
ele = ele.next;
}
}
Der Code compiliert fehlerfrei allerdings wird die Liste nicht ausgegeben, daher glaube ich, dass ich einen Fehler bei meiner Einfügmethode habe. Ich hoffe ihr könnt mir helfen. Vielen Dank!