Aufgabe - zeigerlose Darstellung eines Rings



  • Hallo,
    ich habe hier folgende Aufgabenstellung:

    Eine zyklische Liste oder ein Ring ist eine Sequenz, bei der jedes Element eine Information vom gleichen Datentyp aufnimmt und genau einen Nachfolger besitzt. Der Nachfolger des letzten Elementes ist das erste Element.
    Entwickeln Sie eine zeigerlose Repräsentation eines Ringes mit dem Datentyp Reihe von Verbund! Nehmen Sie dabei die Darstellung des geordneten Baumes als Vorbild, und modifizieren Sie diese geeignet (Ist halt nur ein binärer Baum dargestellt)!
    Die Nummer eines Listenelementes sei eine Zufallszahl. Der Informationsdatentyp sei ein Verbund.

    Was spricht gegen folgende Lösung?

    int n, x;
    	array ring [n];        //
    	struct element {}      //Verbund mit gewünschten Infos füllbar! Bsp. Buchtitel, etc.
    	for (int i=0; i < n; i++) 
    		ring [i] =  struct element x; //Variable x wäre mit Zuffallszahl belegbar; in der nachfolgenden Aufgabe steht dafür die Prozedur rand(zufallszahl) zur Verfügung.
    

    Mein Prüfer verlangt folgende Lösung:

    1. Ringrepräsentation vom Datentyp Reihe von Verbund:
      Jede Zeile entspricht einem Ringelement, ist vom Datentyp Verbund und
      besitzt die folgenden Komponenten:
      Komponente ind enthält den Index des Ringelementes (Zeilenindex von 1 bis n).
      Komponente nr enthält die Nummer dieses Ringelementes (Zufallszahl).
      Komponente info enthält die Information dieses Ringelementes (Datentyp Verbund).
      Komponente nf enthält die Nummer seines Nachfolgeelementes (Zufallszahl).

    Repräsentationsbeispiel mit 5 Zeilen und Informationsdatentyp Zeichenkette:

    Zeilenindex Nummer des Information des Nummer des
    Ringelementes Ringelementes Nachfolgers
    Ind nr info nf
    1 135 AAA 143
    2 143 BBB 387
    3 387 CCC 274

    Mir leuchtet die Lösung mittels eines mehrdimensionalen Arrays durchaus ein,
    jedoch verstehe ich nicht warum ich mit meiner Lösung keinen Ring darstelle.
    Das jeweilige Element, sowie das nachfolgende Element sind eindeutig über die Indexnummer des Arrays identifizierbar. Es wird ein Verbund von Informationen in
    dem Array gespeichert und das jeweilige Element kann eine Zufallszahl zugewiesen bekommen.

    Ich würde zumindest gerne verstehen, wo mein Denkfehler liegt!

    Vielen Dank,
    Sebastian



  • smdg schrieb:

    Was spricht gegen folgende Lösung?

    int n, x;
    	array ring [n];        //
    	struct element {}      //Verbund mit gewünschten Infos füllbar! Bsp. Buchtitel, etc.
    	for (int i=0; i < n; i++) 
    		ring [i] =  struct element x; //Variable x wäre mit Zuffallszahl belegbar; in der nachfolgenden Aufgabe steht dafür die Prozedur rand(zufallszahl) zur Verfügung.
    

    Dagegen spricht, dass das Endeelement nicht auf das Anfangselement verweist.

    smdg schrieb:

    Komponente ind enthält den Index des Ringelementes (Zeilenindex von 1 bis n).
    Komponente nr enthält die Nummer dieses Ringelementes (Zufallszahl).
    Komponente info enthält die Information dieses Ringelementes (Datentyp Verbund).
    Komponente nf enthält die Nummer seines Nachfolgeelementes (Zufallszahl).

    Schwachsinnsaufgabenstellung.
    Eine Zufallszahl kann "zufällig" auch mehrfach vorkommen, diese "Zufallszahl" dann als eindeutiges Kriterium für einen Verweis innerhalb des Rings zu verwenden, lässt auf beschränkten Horizont und fehlende Praxis des Aufgabenstellers schließen.


Anmelden zum Antworten