structs in eine verkettete Liste speichern und ausgeben (?)
-
Moin,
ich bin bei verketteten Listen noch nicht ganz fit und bin mir nicht sicher, ob ich das alles verstanden habe.
Also, ich möchte gerne einen struct in eine Liste speichern. Das hat glaube ich geklappt. Hier mal mein code dazu.Datenstrukturen
/* Datenstruktur für Artikel */ struct artikel{ int a_nr; //Artikel Nummer char a_name[25]; //Artikel Name float a_price; //Artikel Preis int a_item; //Anzahl der Artikel }; struct list{ struct list *next; struct artikel value; };
Funktion zum erstellen einer Liste bzw. einfügen eines Knoten
struct list* addNote(struct list* list, struct artikel value){ struct list* node = malloc(sizeof(struct list)); node->value = value; node->next = NULL; if(list != NULL){ while(list != NULL){ list = list->next; list->next = node; } } }
Funktionsaufruf in der main Datei
struct list *liste; liste = NULL; addNote(liste, a_list);
a_list ist hier der struct artikel, der vorher deklaiert und mit Werten gefüllt wurde. Hab ich hier aber mal weggelassen.
Beim ausühren bekomme ich schonmal keine Fehler, was noch lange nicht heißt, dass es klappt.
Ich habe nun Probleme beim ausgeben der Werte von a_list, die in die Liste gespeichert werden. Bin nun einfach total verwirrt den ganzen Knoten und structs :/.
Wäre echt super, wenn mir jemand auf die Sprünge helfen könnte.
-
Dein Einfügen sieht schon falsch aus. Derzeit überschreibst du alle next-Zeiger mit falschen Werten. Kümmer dich erst einmal darum.
-
Ja, deswegen wollte ich auch wissen, wie ich die Liste ausgeben kann, damit ich merke ob ich das richtig gemacht habe.δ
Mhm, kann es sein das ich noch einen weiteren pointer brauche, damit das klappt mit dem next?
Oder wo ist der logikfehler?