Hallo liebe Community,
ich versuche eine Aufgabe zu doppelt verketteten Listen, die als Ringstruktur abgebildet sind (also das letzte Element zeigt auf das erste usw.), zu lösen.
Das gelingt mir nicht so ganz.
Zur Aufgabe: Die Implementierung des Ringes soll allein über die Klasse RingElement realisiert werden. Aufgrund der Ringstruktur bedarf es keines ausgezeichneten Startelements.
Ich soll eine generische Klasse RingElement schreiben, die einen Vorgänger und Nachfolger als Attribut besitzt.
Dann soll ich eine Methode insertRingElement implementieren, die ein übergebenes RingElement-Objekt als Nachfolger des aktuellen Ringelements einfügt.
Und dann soll ich noch eine Methode getRingElements implementieren , die eine Liste der in der Ringstruktur erhaltenen RingEelement-Objekte zurückliefert.
Ich habe mich versucht und das ganze sieht bei mir so aus:
ich versuche eine Aufgabe zu doppelt verketteten Listen, die als Ringstruktur abgebildet sind (also das letzte Element zeigt auf das erste usw.), zu lösen.
Das gelingt mir nicht so ganz.
Zur Aufgabe: Die Implementierung des Ringes soll allein über die Klasse RingElement realisiert werden. Aufgrund der Ringstruktur bedarf es keines ausgezeichneten Startelements.
Ich soll eine generische Klasse RingElement schreiben, die einen Vorgänger und Nachfolger als Attribut besitzt.
Dann soll ich eine Methode insertRingElement implementieren, die ein übergebenes RingElement-Objekt als Nachfolger des aktuellen Ringelements einfügt.
Und dann soll ich noch eine Methode getRingElements implementieren , die eine Liste der in der Ringstruktur erhaltenen RingEelement-Objekte zurückliefert.
Ich habe mich versucht und das ganze sieht bei mir so aus:
Java:
public class RingElement<T> {
private Object data;
private RingElement<T> newest;
private RingElement<T> first;
private RingElement<T> succecessor;
private RingElement<T> predecessor;
int size = 0;
public RingElement (){}
// alle Getter-Setter Methoden
// Methode zum Einfügen
public void insertRingElement (RingElement<T> new){
if(newest==null) {
newest = new;
first = newest;
newest.succecessor = newest;
newest.predecessor = newest;
size++
} else {
if (size == 1) {
newest.succecessor = new;
newest.predecessor = newest;
newest = newest.succecessor;
} else {
newest.succecessor = new;
newest.predecessor = newest;
newest = newest.succecessor;
newest.succecessor = first;
}
}
}
// Alle Elemente in der Liste auslesen
public void getRingElements(){
for (T element : data){
System.out.println(element);
}
}
}
Zuletzt bearbeitet von einem Moderator: