Hi.
Leider wieder nicht wirklich mit Erfolg. :-(
Hmm, so langsam glaube ich einfach, dass ich zu doof für diese Sache bin.
Was soll das? Das hatten wir doch x-mal besprochen wie das aussehen muss? Erstens passen die Typen nicht - du kannst nicht einen Zeiger an einen Nicht-Zeiger zuweisen, und wieso versuchst du 0 Byte zu allozieren?
C:
Knoten* knt = malloc(sizeof(Knoten));
Warum?
Okay, es sah merkwürdig aus. Aber ich habe erst mal 0 Byte alloziert, damit ich innerhalb der Schleife die Funktion realloc ausführen kann. Aber ich beginne jetzt noch einmal von ganz vorne. Damit ihr versteht, warum ich denke, dass hier ein Array her müsste.
Ich gebe in meinem Programm eine Zahl ein. Diese muss dann in einem Knoten (mit int n, vorg, und nachf) gespeichert werden. Sobald ich eine Zahl eingebe, brauche ich einen Knoten. Gebe ich eine zweite Zahl ein, brauche ich einen zweiten Knoten. Du hast dazu ja auch geschrieben:
Um einen Knoten zur Liste hinzuzufügen brauchst du natürlich einen neuen Knoten und somit natürlich auch Speicherplatz für diesen einen, neuen Knoten.
Macht denn ein Array nicht genau das? Ich brauche doch immer wieder einen neuen Knoten. Ob ich bei zwei Zahlen zwei Knoten die Knotan a und Knoten b habe, oder einen Array mit Knoten[0] und Knoten[1], dürfte doch egal sein. Was habe ich hier falsch verstanden?
Vergiss doch mal deine Arrays und streiche das Wort realloc aus deinem Wortschatz.
Geht klar! Bei unseren alten Prüfungen, die ich momentan durcharbeite, wird die dynamische Speicherverwaltung immer genau vor den doppelt verketteten Listen abgefragt. Von daher vermische ich das wohl gerne.
Du mußt doch wirklich nur einen neuen Knoten erstellen und diesen dann an die Liste hängen. Die Knoten mußt du nicht in einem Array verwalten!
Okay, ich habe zwar nicht verstanden, wo der Unterschied dazu liegt, ob ich hundert einzelne Knoten habe, oder einen Array, der hundert Knoten beinhaltet, aber ich glaube es dir jetzt einfach einmal. Aber ich habe es richtig verstanden, dass bei 100 eingegebene Zahlen, ich auch hundert Knoten habe, oder?
Ich werde mich gleich nochmal an einen neuen Versuch wagen. Danke für deine Geduld mit mir! :-D