Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Einfuegen eines Elementes
- *
- * Bekommt einen Zeiger auf einen Zeiger der auf das 1. Element der Liste zeigt
- * Bekommt MatNr, Vorname und Nachname des Studenten der Eingefügt werden soll
- *
- */
- void enqueue(stud_type** studenten_liste, int matnum, char vorname[20], char nachname[20])
- {
- /* Deklariere benötigte Variablen */
- struct stud_type *buffer, *prev = NULL, *next = *studenten_liste;
- /* Hol Speicher auf dem Heap an für den neuen Listen Eintrag */
- buffer = malloc(sizeof(studenten_liste));
- /* Befüll den Speicher */
- buffer->matnum = matnum;
- buffer->vorname = vorname[20];
- buffer->nachname = nachname[20];
- buffer->next_student = NULL;
- /* Füg den neuen Eintrag in die Liste ein */
- /* Ist die Liste leer ? */
- /* Sortier den Studenten aufsteigend nach Matrikelnummer ein */
- if (is_empty(studenten_liste)) {
- *studenten_liste = buffer;
- }else{
- while(next!=NULL && next->matnum < buffer->matnum){
- prev = next;
- next = next->next_student;
- }
- if(prev != NULL){ //NULL FALLS AM ANFANG DER LISTE EINSORTIERT
- prev->next_student = buffer;
- }
- if(next != NULL){ //NULL FALLS AM ENDE DER LISTE EINSORTIERT; EIGENTLICH KEIN PROBLEM FALLS ES NICHT ÜBERPRÜFT WIRD DA ES DANN SO ODER SO NULL IST
- buffer->next_student = next;
- }
- };
- free(buffer);
- }
Add Comment
Please, Sign In to add comment