Ring < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 23:34 Mo 30.01.2012 | Autor: | emulb |
Aufgabe | 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! |
Ich hab nun ein Teil gemacht jedoch, bevor ich weitermache wollte ich ein feedback ob das so stimmt.
1: |
| 2: |
| 3: | public class Element {
| 4: | private Object value;
| 5: | private Element next;
| 6: | public Element(Object value, Element next) {
| 7: | this.next = next;
| 8: | this.value = value;
| 9: | }
| 10: | public void setNext(Element next) {
| 11: | this.next = next;
| 12: | }
| 13: | public Element getNext() {
| 14: | return next;
| 15: | }
| 16: | public Object getValue() {
| 17: | return value;
| 18: | }
| 19: | }
| 20: | public class Ring {
| 21: | private Element position;
| 22: | public Ring() {
| 23: | position = null;
| 24: | }
| 25: | }
| 26: |
| 27: | public void insert(Object v) {
| 28: | if (position == null) {
| 29: | position = new Element(v,null);
| 30: | position.setNext(position);
| 31: | }
| 32: | else {
| 33: | Element e = new Element(v,position.getNext());
| 34: | position.setNext(e);
| 35: |
| 36: | system.out.println(Element);
| 37: | public void remove() {
| 38: | if (position != null) {
| 39: | if (position.getNext() == position) position = null;
| 40: | else {
| 41: | Element prev = position;
| 42: | while (prev.getNext() != position) prev = prev.getNext();
| 43: | position = position.getNext();
| 44: | prev.setNext(position);
| 45: | }
| 46: | }
| 47: | }
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:20 Do 02.02.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|