Advertisement
madegoff

Untitled

Dec 8th, 2023
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #include <stdint.h>
  2. #ifndef MAX_STR
  3. #define MAX_STR 255
  4. #endif
  5. /* Bewirkt, dass statt 'struct _element' auch 'element' verwendet
  6. * werden kann.
  7. */
  8. #ifndef ELEMENT
  9. #define ELEMENT
  10. typedef struct _element element;
  11. #endif
  12. /* Bewirkt, dass statt 'struct _list' auch 'list' verwendet werden
  13. * kann. Hier in einem geschrieben, so dass man auch 'list'
  14. * innerhalb der struct-Definition selbst verwenden kann.
  15. */
  16. #ifndef LIST
  17. #define LIST
  18. typedef struct _list { /* Separater Wurzelknoten */
  19. element* first; /* Anfang/Kopf der Liste */
  20. int count; /* Anzahl der Elemente */
  21. } list;
  22. #endif
  23.  
  24. #ifndef ELEMENTDEF
  25. #define ELEMENTDEF
  26. /* HIER struct _element implementieren. */
  27. typedef struct _element {
  28. char title[MAX_STR];
  29. char author[MAX_STR];
  30. uint32_t year;
  31. uint64_t isbn;
  32. element* next; //Pointer aufs naechste element
  33.  
  34. } element;
  35. /* ab hier nichts mehr implementieren. */
  36. #endif
  37. /* Fuege ein Element am Anfang der Liste an, sodass das neue
  38. * Element immer das erste Element der Liste ist. Wenn die Liste
  39. * leer ist, soll das Element direkt an den Anfang platziert
  40. * werden.
  41. *
  42. * first - Pointer auf das erste Element (bzw. Anfang) der
  43. * Liste
  44. * new_elem - Pointer auf das neues Element das in die Liste
  45. * eingefuegt werden soll
  46. *
  47. * Gib einen Pointer auf den neuen Anfang der Liste zurueck.
  48. */
  49. element* insert_at_begin(element* , element*);
  50.  
  51. /* Kreiere ein neues Element mit dynamischem Speicher.
  52. *
  53. * title - Titel des Buches
  54. * author - Autor des Buches
  55. * year - Erscheinungsjahr des Buches
  56. * isbn - ISBN des Buches
  57. *
  58. * Gib einen Pointer auf das neue Element zurueck.
  59. */
  60. element* construct_element(char*, char*, uint32_t, uint64_t);
  61.  
  62. /* Gib den der Liste und all ihrer Elemente zugewiesenen
  63. * Speicher frei.
  64. */
  65. void free_list(list*);
  66.  
  67. /* Lese die Datei ein und fuege neue Elemente in die Liste ein
  68. * _Soll nicht angepasst werden_
  69. */
  70. void read_list(char*, list*);
  71.  
  72. /* Erstelle die Liste:
  73. * - Weise ihr dynamischen Speicher zu
  74. * - Initialisiere die enthaltenen Variablen
  75. * _Soll nicht angepasst werden_
  76. */
  77. list* construct_list();
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement