Verkettete Listen
-
Hallo Leute ich hab ein Problem...
Ich will Elemente genauer gesagt char elemente in eine einfach verkettete Liste einfügen um sie anschließend zu suchen zu löschen etc. aber das ist nicht das Problem.
Ich wollte es zuerst nur mit einem Elementr versuchen aber irgendwie haperts da...
mein code
#include <stdio.h> struct Liste {char name; //Daten struct Liste *next; //Zeiger auf naechstes Element }; typedef Liste* Pliste; // Zeigertype definieren void neu(Pliste); void init(Pliste & ); void main () { PListe akt,first; init(first); printf("Geben sie einen Namen ein:\n"); gets(Pliste.name); } void init (Pliste &p) // Unterprogramm Init { p = NULL; } void neu(Pliste) { Pliste *akt; akt=first; while(akt->next!=NULL) { akt=akt->; new (Pliste*)malloc(sizeof struct(Pliste); } akt->next=new; new->next=NULL; }
mfg Markus
-
du willst zum einen in einen Datentyp schreiben, zum anderen nutzt du für einen zeiger einen punkt und keinen pfeil
-
ehrlich gesagt, in deinem code stecken so viele fehler, daß ich garnicht weiß, wo ich mit dem korrigieren anfangen soll. ich habe ihn deshalb mal komplett überarbeitet:
#include <stdio.h> struct Liste { char name; //Daten struct Liste *next; //Zeiger auf naechstes Element }; typedef Liste* Pliste; // Zeigertype definieren void neu(Pliste); void init(Pliste&); PListe first; // muß global sein void main () { PListe p; init(first); neu(p); printf("Geben sie einen Namen ein:\n"); p->name=getchar(); } void init (Pliste &p) // referenzen sind eigentlich nicht c sondern c++ { p = NULL; } void neu (Pliste &p) // diese funktion war kompletter murks { p=new struct Liste; // new ist eigentlich auch c++ p->next=first; // es ist einfacher, das neue element first=p; // an den anfang der liste einzufügen }