Verkettete Liste
-
Hallo!
Ich möchte eine einfache Verkettete Liste schreiben, und habe mich dabei an einem Beispiel orientiert, das jedoch in C++ geschrieben wurde. Nur, wenn ich dieses compiliere, erhalte ich eine ganze Menge Fehlermeldungen, von denen einige kommentiert sind. Wäre echt super, wenn mir jemand erklären könnte, wie die zustande kommen, und wie ich sie am besten behebe. Danke im voraus!
#include <stdio.h> struct Knoten { int alter; char name[20]; Knoten* Nachfolger; }; Knoten *letztesElement(); void neuesElement(char* name, int alter); Knoten listenkopf; //parse Error before listenkopf void main() { printf("Name: "); scanf("%s", listenkopf.name); //Zunächst der Listenkopf printf("Alter: "); scanf("%d", listenkopf.alter); int alter = 0; char name[20]; while(alter != -1) //alter undeclared (first use in this function) { printf("Name: "); scanf("%s", name); printf("Alter: "); scanf("%d", &alter); if(alter != -1) { neuesElement(name, alter); } } } void neuesElement(char* name, int alter) { Knoten* knoten = new Knoten; //parse Error before Knoten, new undeclared (first use in this function) knoten->name = name; knoten->alter = alter; knoten->Nachfolger = NULL; letztesElement->Nachfolger = knoten; } Knoten* letztesElement() //parse Error befor * { Knoten* knoten = &listenkopf; //Knoten undeclared (first use in this function) while(knoten->Nachfolger != NULL) { knoten = knoten->Nachfolger; } return knoten; }
-
Müßte das in ANSI C nicht so aussehen?
typedef struct NODE node; struct NODE { int alter; char name[20]; node *next; }; //...
-
entweder machst du das so
typedef struct { //alles was nach Knoten gehört } Knoten;
oder du schreibst vor jedes auftretende Knoten einfach struct