Ma wieder ein problem mit meiner Liste
-
Hey...
habe gestern verzweifelt versucht meine verkettete Liste nach
dem Alphabet zu sortieren...hab mir gedacht ich vergleich immer zwei Elemente mit strcmp().
Wenn das erste der beiden Elemente größer ist, sollen die beiden
Elemente ihren Platz tauschen...und das dann so lang bis alles
sortiert ist...aber ich bekomme es nicht hin.Hab keine Ahnung wie ich meine Pointer setzen soll das des richtig
funktioniert...hoffe ihr könnt mir da weiter Helfen.Hier meine Daten Struktur:
struct DATEN { char tag[3]; char Titel[31]; char Interpret[31]; char Album[31]; char Jahr[4]; char Track[31]; char Genre[31]; char Kommentar[31]; };
und meine Funktion zum Sortieren:
void sort(struct listenkopf *head) { struct listenelement *element; struct listenelement *element2; struct listenelement *hilfsptr; char *dat1; char *dat2; element=head->ersteselement; element2=element->next; hilfsptr=head->ersteselement; if(element!=0) { do { dat1=element->daten->Titel; dat2=element2->daten->Titel; if(strcmp(dat1,dat2)>0) { //Hier soll normal getauscht //werden. Gibt aber ne Endlos //schleife...HILFE!! element->next=element2->next; element2->next=element; hilfsptr->next=element2; } else { element=element->next; element2=element2->next; } } while(element || element2 != 0); } else { printf("Es ist nur ein Element vorhanden!"); } }
-
hab meinen Fehler schon gefunden...funktioniert jetzt.