dynamische Anzahl an Structs/Listen?

  • Themenstarter Themenstarter Mavinas
  • Beginndatum Beginndatum
M

Mavinas


Hi,

und zwar würde ich gerne eine dynamische Anzahl an Structs/Listen erstellen.
Ich frage mich, ob das über eine Funktion möglich wäre?

Also so, dass ich an die Funktion die Anzahl der zu erstellenden Listen übergebe und diese dann X Listen erstellt und anschließend mit Y befüllt.
 
Zuletzt bearbeitet von einem Moderator:
Hi

was jetzt, structs oder Listen?

Zu structs: Natürlich, alles geht dynamisch. Egal ob du die structs in einem Array, einer Liste oder sonstwas speicherst. new/delete oder malloc/free.

Zu listen: Mach doch einfach eine Liste aus Pointern, in denen du jeweils die Ausgangspointer der Listen speicherst. Eine Liste aus Listen.

Aber da du vermutlich was ganz andereswillst: Beschreib das bitte genauer.

Gruß
 
Ich würde gerne eine Liste erstellen in der ich mit Hilfe von Zeigern von oben nach unten sowie von links nach rechts die Datensätz abarbeiten kann.
Von diesen Listen brauch ich allerdings je nach Übergabewert eine bis unzählige.

Da sich die Liste in einem Struct befindet, weiß ich nicht so genau, wie ich das ganze dynamisch halten kann.

Als Beispiel:

Code:
struct listentest{
      int zahl;
      int zahl2;
      struct listentest *next;
      struct listentest *prev;
};

Damit könnte ich vor und zurück gehen, aber wie kann ich von oben nach unten und vor allem wie kann ich die Listenanzahl dynamisch halten?
Also ich bräuchte von der Liste noch weitere.

Kurze Frage am Rande:
Was ist eigentlich der Unterschied zwischen "struct listentest* next;" und "struct listentest *next;" ?
 
Zuerst zu der Schlussfrage zum *: Das ist komplett gleich. Kein Unterschied.

Zum Hauptthema: Du willst also nicht eine Liste, vergleichbar mit einem Strich von links nach rechts, sondern sowas wie ein Rechteckförmiges Netz aus Elementen, mit Navigation in alle 4 Himmelsrichtungen? (siehe Bild? Bitte meine Paint-Kritzelei verzeihen)

Da das mit einem zweidimensionalen Array vergleichbar ist nenn ich es einfach mal eine zweidim. Liste. Also: Meinst du das?
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    21,5 KB · Aufrufe: 3
Nun, dann vergiss next und prev und mach es vierfach.
C++:
struct listentest{
      struct listentest *rechts;
      struct listentest *oben;
      struct listentest *links;
      struct listentest *unten;
      //daten
};
Die Enden haben dann eben NULL drin, wie üblich bei Listen.

Gruß
 
Zuletzt bearbeitet:
Super danke!
Du hast mich schon weiter gebracht, so ganz genau habe ich es noch nicht, aber ich denke ich bekomms mit deinen Denkanstößen hin.
 
Zurück