Zeiger auf Zeiger
-
Hallo!
Ich stecke gerade in der Klausurvorbereitung für Programmieren 2 und bin auf folgende Aufgabe gestoßen.
Hier ist der Link:http://hiphop-tribuene.de/stack.jpg
Leider weiß ich nicht genau, wie ich diese dargestellte Struktur anhand von Zeigern realisieren kann.
Falls mir jemand von euch da einen kleinen denkanstoß geben könnte, wäre ich sehr dankbar
Mfg
-
Ist das nicht eine "zirkulierende" Liste?
struct List { List * mPrevious; List * mNext; };
-
Die einseitig gerichteten Pfeile lassen aber auf eine einfach verkettete Liste ("zirkulierend") schliessen.
Die Struktur für die Elemente wäre dann:
struct Element { T Value; // T ist Templatetyp Element* Next; };Für den Teil, der auf dem Bild im Stack dargestellt ist (also der Head/die Basis der Liste), kann man ein Klassentemplate schreiben, das einen Container repräsentiert und entsprechende Methoden bereitstellt. Dieser übernimmt dann auch die Verkettungen der einzelnen Elemente.
-
Ok, danke.
Wäre eine solche herangehensweise denkbar/richtig?struct stack { int i; stack* next; }; stack* zheap; zheap = new stack; zheap->i = 1; zheap->next = new stack; zheap->next->i = 2; zheap->next->next = new stack; zheap->next->next->i = 3;Wie müsste es aussehen, wenn das letzte heap-objekt wieder auf das erste heap-objekt zeigt?
-
Auf das läuft es in etwa hinaus. Nur gibt es dann da einfach eine Funktion, die dir diese Arbeit übernimmt und die Zeiger verknüpft.
Kannst ja mal hier im Forum nach Liste suchen. Hatten wir schon etliche male. Oder auch mal die Implementierungen von std::list deins Compilers anschauen. (ist zwar eine doppelt vertkettete Liste, aber im Prinzip ist das ja ähnlich.)Du kannst dir ja einen Zeiger auf das erste Element in der Liste speichern und es dann benutzen, wenn du an das letzte gelangst.