Advertisement
mario_mos

exo1linklist

Jul 27th, 2023
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string.h>
  6. /*----------------------------------------------------------------------------------*/
  7. typedef struct Liste
  8. {
  9. int date;
  10. char *auteur;
  11. char *titre;
  12. struct Liste *suivant;
  13.  
  14. }Liste;
  15.  
  16. //appel fonction
  17. Liste* init(int date ,char *auteur, char *titre );
  18. void ajouter(Liste **debut, int date, char *auteur, char *titre);
  19. void libre_list(Liste *liste);
  20. void imprime(Liste *tmp);
  21.  
  22. /*----------------------------------------------------------------------------------*/
  23.  
  24.  
  25. int main()
  26. {
  27. Liste *liste = NULL;
  28. ajouter(&liste,2022,"Albert","toto");
  29. //imprime(liste);
  30. ajouter(&liste,2023,"Mario","tata");
  31. //printf("anne : %d auteur : %s titre :%s\n",liste->date,liste->auteur,liste->titre);
  32. imprime(liste);
  33.  
  34.  
  35. libre_list(liste);
  36.  
  37. return 0;
  38. }
  39.  
  40. void imprime(Liste *tmp)
  41. {
  42.  
  43. while(tmp != NULL)
  44. {
  45. printf("anne : %d auteur : %s titre :%s\n",tmp->date,tmp->auteur,tmp->titre);
  46. tmp = tmp->suivant;
  47.  
  48. }
  49. }
  50. /*----------------------------------------------------------------------------------*/
  51.  
  52. void libre_list(Liste *liste)
  53. {
  54. Liste *tmp;
  55. while(liste !=NULL)
  56. {
  57. tmp = liste;
  58. liste = liste->suivant;
  59. free(tmp);
  60. }
  61. }
  62.  
  63. /*----------------------------------------------------------------------------------*/
  64.  
  65. Liste* init(int date ,char *auteur, char *titre )
  66. {
  67. Liste *liste = malloc(sizeof(Liste));
  68. //Pour strcpy il faut un malloc pour chaque item de la classe
  69. // Liste *date = (Liste *) malloc(sizeof(date));
  70. // Liste *auteur = (Liste *) malloc(sizeof(auteur));//ajout
  71. // Liste *titre = (Liste *) malloc(sizeof(titre));//ajout
  72. liste->date = date;
  73. liste->auteur = auteur;
  74. liste->titre = titre;
  75. liste->suivant = NULL;
  76. //Pour strcpy il faut un malloc pour chaque item de la classe
  77. //debut->suivant->date = date;
  78. // strcpy(debut->suivant->auteur,auteur);
  79. // strcpy(debut->suivant->titre,titre);
  80. return liste;
  81. }
  82.  
  83. /*----------------------------------------------------------------------------------*/
  84. void ajouter(Liste **debut, int date, char *auteur, char *titre) {
  85.  
  86. Liste *newlist = init(date,auteur,titre);
  87. if(*debut == NULL)
  88. {
  89. *debut = newlist;
  90.  
  91. }
  92. else
  93. {
  94. newlist->suivant = *debut;
  95. *debut = newlist;
  96. };
  97. }
  98.  
  99. /*----------------------------------------------------------------------------------*/
  100. // Liste *noeud_actuel = debut;
  101. // while (noeud_actuel->suivant != NULL) {
  102. // noeud_actuel = noeud_actuel->suivant;
  103. // }
  104. // noeud_actuel->suivant = (Liste *) malloc(sizeof(Liste));
  105. // noeud_actuel->suivant = (Liste *) malloc(sizeof(date));//ajout
  106. // noeud_actuel->suivant = (Liste *) malloc(sizeof(auteur));//ajout
  107. // noeud_actuel->suivant = (Liste *) malloc(sizeof(titre));//ajout
  108. // noeud_actuel->suivant->date = date;
  109. // noeud_actuel->suivant->suivant = NULL;
  110. // strcpy(noeud_actuel->suivant->auteur,auteur);
  111. // strcpy(noeud_actuel->suivant->titre,titre);
  112.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement