Freak_Desperado
Erfahrenes Mitglied
Hallo!
Ich versuche meinen Stack zu sortieren.
Hat jemand einen guten Ansatz dazu?
Gruß Michi
Ich versuche meinen Stack zu sortieren.
Hat jemand einen guten Ansatz dazu?
Gruß Michi
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
typedef struct azubi{
char name[MAX_ELEMENTS];
char vorname[MAX_ELEMENTS];
int personalnummer;
struct azubi *next;
} azubi;
azubi *start = NULL;
Es geht um C - nicht um C++.Gleiche Bemerkung wie deepthroat, du musst schon sagen welchen Datentyp du für einen Stack verwenden willst.
Du kannst einen vector nehmen, der bietet Stack ähnliche Funktionen wie push_back und pop_back.
Dort könntest du dann std::sort benutzen.
Für eine solche einfach verkettete Liste musst du dir selbst eine Sortierfunktion erstellen. Dazu wählst du einen geeigneten Sortieralgorithmus aus und implementierst ihn für diese Liste. Ganz einfach wäre z.B. Bubblesort.Ich habe mir folgenden Datentyp gemacht:
Dann kommen nach und nach die Elemente hinzu.Code:typedef struct azubi{ char name[MAX_ELEMENTS]; char vorname[MAX_ELEMENTS]; int personalnummer; struct azubi *next; } azubi; azubi *start = NULL;
Und jetzt weiß ich nicht, wie ich den z.B. nach der Personalnummer sortieren kann.
void sortAzubisByPersnr(void){
azubi *zeiger1;
azubi *zeiger2;
azubi *tempZeiger1;
azubi *tempZeiger2;
azubi *prevZeiger = NULL;
int i = 0;
if(start != NULL){
zeiger1 = start;
zeiger2 = zeiger1->next;
while(zeiger2 != NULL){
while(zeiger2 != NULL){
tempZeiger1 = zeiger1;
tempZeiger2 = zeiger2;
if(zeiger1->personalnummer > zeiger2->personalnummer){
zeiger1 = zeiger2;
zeiger2 = tempZeiger1;
zeiger1->next = zeiger2;
zeiger2->next = tempZeiger2->next;
if(prevZeiger != NULL){
prevZeiger->next = zeiger1;
}
}
if(i > 0){
start = zeiger1;
}
i++;
zeiger2 = zeiger2->next;
}
prevZeiger = zeiger1;
zeiger1 = zeiger1->next;
zeiger2 = zeiger1->next;
}
}else{
printf("Keine Azubis zum Sortieren vorhanden.\n");
}
}