Hab in den letzten Themen "wie funktionieren doppelt Verkettete Liste": http://www.tutorials.de/c-c/375840-wie-funktionieren-doppelt-verkettete-liste.html
eine nun funktionierende Liste erstellt bekommen.
Meine Frage ist, wie kann ich nun die Strings sortiert in die Liste füllen.
Mein Ansatz dazu sieht folgendermaßen aus:
Das funktionier leider nur nicht!! und ich bin schon mehr als ratlos, weil ich immer noch nicht verstanden habe, wie ich die Zeiger meiner Liste neu setzten muss, da ich die Zeilen 47 -50 nicht verstehe und diese aus dem Beispiel : http://perlgeek.de/de/artikel/doppelt-verkettete-listen so übernommen habe.
Bei meiner anhaengfunktion klappt das ja. Müsste doch bei meiner sortierungsfunkzion genauso klappen. Oder?
Gruß.
eine nun funktionierende Liste erstellt bekommen.
Meine Frage ist, wie kann ich nun die Strings sortiert in die Liste füllen.
Mein Ansatz dazu sieht folgendermaßen aus:
Java:
node* suche(node* list, void* pvalue, bool (*cmp)(void*, void*))
{
node* vorne = list -> right ;
node* hinten = vorne -> right ;
while(vorne != NULL)
{
if (cmp(vorne -> content, pvalue) == true)
{
if (hinten == NULL)
{
return vorne ;
}
else
{
// In der Liste weitergehen
vorne = hinten ;
hinten = hinten -> right ;
}
}
else
{
return vorne ;
}
} ;
return NULL ;
}
node* sort(node* list, void* neuer_String, void* (*set)(void*), int counter, bool (*cmp)(void*, void*))
{
node* neu_Elem = (node*) malloc(sizeof(node));
// Überprüfen, ob Speicher übergeben worden ist
if(neu_Elem == NULL)
{
printf("\n Listenelement konnte nicht angelegt werden, da kein Speicher vorhanden ist! \n");
exit(1);
}
//String / Wort an die Funktion "copySting" übergeben, um Speicher für den Zeiger "content" zu besorgen
void* tmpchar = set(neuer_String);
node* vor = suche(list, neuer_String, cmp);
neu_Elem -> content = tmpchar;
neu_Elem -> lineCounter = counter;
// Was wird hier genau gemacht?
neu_Elem -> left = list;
neu_Elem -> right = list -> right;
list -> right-> left = neu_Elem;
list -> right = neu_Elem;
return neu_Elem;
}
Das funktionier leider nur nicht!! und ich bin schon mehr als ratlos, weil ich immer noch nicht verstanden habe, wie ich die Zeiger meiner Liste neu setzten muss, da ich die Zeilen 47 -50 nicht verstehe und diese aus dem Beispiel : http://perlgeek.de/de/artikel/doppelt-verkettete-listen so übernommen habe.
Bei meiner anhaengfunktion klappt das ja. Müsste doch bei meiner sortierungsfunkzion genauso klappen. Oder?
Gruß.
Zuletzt bearbeitet: