Guest User

Untitled

a guest
May 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. /* Einfuegen eines Elementes
  2. *
  3. * Bekommt einen Zeiger auf einen Zeiger der auf das 1. Element der Liste zeigt
  4. * Bekommt MatNr, Vorname und Nachname des Studenten der Eingefügt werden soll
  5. *
  6. */
  7. void enqueue(stud_type** studenten_liste, int matnum, char vorname[20], char nachname[20])
  8. {
  9. /* Deklariere benötigte Variablen */
  10. struct stud_type *buffer, *prev = NULL, *next = *studenten_liste;
  11.  
  12. /* Hol Speicher auf dem Heap an für den neuen Listen Eintrag */
  13. buffer = malloc(sizeof(studenten_liste));
  14.  
  15. /* Befüll den Speicher */
  16. buffer->matnum = matnum;
  17. buffer->vorname = vorname[20];
  18. buffer->nachname = nachname[20];
  19. buffer->next_student = NULL;
  20.  
  21. /* Füg den neuen Eintrag in die Liste ein */
  22. /* Ist die Liste leer ? */
  23. /* Sortier den Studenten aufsteigend nach Matrikelnummer ein */
  24. if (is_empty(studenten_liste)) {
  25.  
  26. *studenten_liste = buffer;
  27.  
  28. }else{
  29.  
  30. while(next!=NULL && next->matnum < buffer->matnum){
  31. prev = next;
  32. next = next->next_student;
  33. }
  34.  
  35. if(prev != NULL){ //NULL FALLS AM ANFANG DER LISTE EINSORTIERT
  36. prev->next_student = buffer;
  37. }
  38.  
  39. 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
  40. buffer->next_student = next;
  41. }
  42.  
  43. };
  44.  
  45. free(buffer);
  46. }
Add Comment
Please, Sign In to add comment