Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

65 wiersze
1.4KB

  1. // Ein Listenelement
  2. struct IntListElem {
  3. IntListElem* next; // Zeiger auf nächstes Element
  4. int value; // Daten zu diesem Element
  5. } ;
  6. // Eine Liste
  7. struct IntList {
  8. int count; // Anzahl Elemente in der Liste
  9. IntListElem* first; // Zeiger auf erstes Element der Liste
  10. } ;
  11. // Initialisiere eine Listenstruktur
  12. void empty_list (IntList* l)
  13. {
  14. l->first = 0; // 0 ist keine gueltige Adresse: Liste ist leer
  15. l->count = 0;
  16. }
  17. // Fuege ein Element nach einem gegebenem ein
  18. void insert_in_list (IntList* list, IntListElem* where, IntListElem* ins)
  19. {
  20. if (where==0) // fuege am Anfang ein
  21. {
  22. ins->next = list->first;
  23. list->first = ins;
  24. list->count = list->count + 1;
  25. }
  26. else // fuege nach where ein
  27. {
  28. ins->next = where->next;
  29. where->next = ins;
  30. list->count = list->count + 1;
  31. }
  32. }
  33. // Entferne ein Element nach einem gegebenem
  34. // Liefere das entfernte Element zurueck
  35. IntListElem* remove_from_list (IntList* list, IntListElem* where)
  36. {
  37. IntListElem* p; // das entfernte Element
  38. // where==0 dann entferne erstes Element
  39. if (where==0)
  40. {
  41. p = list->first;
  42. if (p!=0)
  43. {
  44. list->first = p->next;
  45. list->count = list->count - 1;
  46. }
  47. return p;
  48. }
  49. // entferne Element nach where
  50. p = where->next;
  51. if (p!=0)
  52. {
  53. where->next = p->next;
  54. list->count = list->count - 1;
  55. }
  56. return p;
  57. }