Aufgrund meiner Krankheit und der langen Krankenhaus besuche hinke ich mit dem Stoff sehr weit hinterher. Muss mir gerade alles selber beibringen und muss außerdem 5 Blätter bis morgen abgeben mit jeweils 4 Aufgaben. Dies ist die einzige Aufgabe die ich nicht habe und die ich eigenlich auch nicht verstehe. Ich hab zwar etwas ausprobiert aber ich bin mit meinen Kräften nun vollkommen am Ende. Kann mir jemand bitte helfen, dass ich endlich schlafen kann.
Hier die Aufgabe und im Anschluss meine hingeknetete Lösung.
Eine lineare Liste wird zu einem Ring geschlossen, indem das erste Element der Liste als
Nachfolger des letzten Elements gesetzt wird. Der Anfang der Ringliste wird dann durch
eine Referenz auf ein beliebiges Element des Rings gesetzt. Dieses Element des Rings sei
im folgenden als aktuelles Element bezeichnet.
Implementieren Sie eine Klasse Ring mit Elementen vom Typ Element .
Implementieren Sie für die Klasse Ring Methoden mit folgender Funktionalität:
1. Ring(): Konstruktor, generiert leeren Ring.
2. Ring(int n): Konstruktor, generiert Ring mit n Elementen mit den Werten 1 bis
n aufsteigend. Aktuelles Element hat den Wert 1.
3. next(): Die Referenz auf den Ring (d. h. das aktuelle Element) wird um ein
Element weiter bewegt.
4. back(): Das aktuelle Element wird um ein Element zurück bewegt.
5. insert(int d): Es wird ein Element in den Ring einfügt. Das neue Element soll
vor dem aktuellen Element eingefügt werden.
6. print(): Die Werte der Elemente des Rings werden auf dem Bildschirm ausgegeben.
7. remove(): Das aktuelle Element wird aus dem Ring gelöscht. Das nachfolgende
Element wird aktuelles Element (oder null falls der Ring leer wird).
8. Ein bekannter Auszählreim für Kinder ist „Ene mene muh und raus bis Du!“,
d. h. die siebte Person ist „raus“. Unter den verbleibenden Kindern wird wiederum
ausgezählt bis am Ende ein Gewinner übrig bleibt.
everyNth(int n): Solange möglich, wird jedes n-te (n >=2) Element gelöscht. Für
einen nichtleeren Ring bleibt genau ein Element (der Gewinner) übrig.
Testens Sie ihre Implementierung!
Das wars auch mit meinem Teil ;( ;( ;(
Ich kann nicht mehr :autsch:
Hier die Aufgabe und im Anschluss meine hingeknetete Lösung.
Eine lineare Liste wird zu einem Ring geschlossen, indem das erste Element der Liste als
Nachfolger des letzten Elements gesetzt wird. Der Anfang der Ringliste wird dann durch
eine Referenz auf ein beliebiges Element des Rings gesetzt. Dieses Element des Rings sei
im folgenden als aktuelles Element bezeichnet.
Implementieren Sie eine Klasse Ring mit Elementen vom Typ Element .
Implementieren Sie für die Klasse Ring Methoden mit folgender Funktionalität:
1. Ring(): Konstruktor, generiert leeren Ring.
2. Ring(int n): Konstruktor, generiert Ring mit n Elementen mit den Werten 1 bis
n aufsteigend. Aktuelles Element hat den Wert 1.
3. next(): Die Referenz auf den Ring (d. h. das aktuelle Element) wird um ein
Element weiter bewegt.
4. back(): Das aktuelle Element wird um ein Element zurück bewegt.
5. insert(int d): Es wird ein Element in den Ring einfügt. Das neue Element soll
vor dem aktuellen Element eingefügt werden.
6. print(): Die Werte der Elemente des Rings werden auf dem Bildschirm ausgegeben.
7. remove(): Das aktuelle Element wird aus dem Ring gelöscht. Das nachfolgende
Element wird aktuelles Element (oder null falls der Ring leer wird).
8. Ein bekannter Auszählreim für Kinder ist „Ene mene muh und raus bis Du!“,
d. h. die siebte Person ist „raus“. Unter den verbleibenden Kindern wird wiederum
ausgezählt bis am Ende ein Gewinner übrig bleibt.
everyNth(int n): Solange möglich, wird jedes n-te (n >=2) Element gelöscht. Für
einen nichtleeren Ring bleibt genau ein Element (der Gewinner) übrig.
Testens Sie ihre Implementierung!
Java:
public class Ring<T> {
private final T[] buffer;
private final int capacity;
private int next = 0;
private int used;
public Ring(int c) {
capacity = c;
buffer = (T[])new Object[c];
used = 0;
}
public void push(T t) {
buffer[next] = t;
next++;
if(next >= capacity)
next = 0;
if(used < capacity)
used++;
Ich kann nicht mehr :autsch: