Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. typedef struct Element Element;
  2. struct Element
  3. {
  4. int nombre;
  5. Element *suivant;
  6. };
  7.  
  8. typedef struct Pile Pile;
  9. struct Pile
  10. {
  11. Element *premier;
  12. };
  13.  
  14.  
  15. void empiler(Pile *pile, int nvNombre)
  16. {
  17. Element *nouveau = malloc(sizeof(*nouveau));
  18. if (pile == NULL || nouveau == NULL)
  19. {
  20. exit(EXIT_FAILURE);
  21. }
  22.  
  23. nouveau->nombre = nvNombre;
  24. nouveau->suivant = pile->premier;
  25. pile->premier = nouveau;
  26. }
  27. int depiler(Pile *pile)
  28. {
  29. if (pile == NULL)
  30. {
  31. exit(EXIT_FAILURE);
  32. }
  33.  
  34. int nombreDepile = 0;
  35. Element *elementDepile = pile->premier;
  36.  
  37. if (pile != NULL && pile->premier != NULL)
  38. {
  39. nombreDepile = elementDepile->nombre;
  40. pile->premier = elementDepile->suivant;
  41. free(elementDepile);
  42. }
  43.  
  44. return nombreDepile;
  45. }
  46.  
  47.  
  48. void afficherPile(Pile *pile)
  49. {
  50. if (pile == NULL)
  51. {
  52. exit(EXIT_FAILURE);
  53. }
  54. Element *actuel = pile->premier;
  55.  
  56. while (actuel != NULL)
  57. {
  58. printf("%d\n", actuel->nombre);
  59. actuel = actuel->suivant;
  60. }
  61.  
  62. printf("\n");
  63. }
  64.  
  65. #FILE
  66.  
  67. typedef struct Element Element;
  68. struct Element
  69. {
  70. int nombre;
  71. Element *suivant;
  72. };
  73.  
  74. typedef struct File File;
  75. struct File
  76. {
  77. Element *premier;
  78. };
  79.  
  80.  
  81. void enfiler(File *file, int nvNombre)
  82. {
  83. Element *nouveau = malloc(sizeof(*nouveau));
  84. if (file == NULL || nouveau == NULL)
  85. {
  86. exit(EXIT_FAILURE);
  87. }
  88.  
  89. nouveau->nombre = nvNombre;
  90. nouveau->suivant = NULL;
  91.  
  92. if (file->premier != NULL) /* La file n'est pas vide */
  93. {
  94. /* On se positionne à la fin de la file */
  95. Element *elementActuel = file->premier;
  96. while (elementActuel->suivant != NULL)
  97. {
  98. elementActuel = elementActuel->suivant;
  99. }
  100. elementActuel->suivant = nouveau;
  101. }
  102. else /* La file est vide, notre élément est le premier */
  103. {
  104. file->premier = nouveau;
  105. }
  106. }
  107.  
  108. int defiler(File *file)
  109. {
  110. if (file == NULL)
  111. {
  112. exit(EXIT_FAILURE);
  113. }
  114.  
  115. int nombreDefile = 0;
  116.  
  117. /* On vérifie s'il y a quelque chose à défiler */
  118. if (file->premier != NULL)
  119. {
  120. Element *elementDefile = file->premier;
  121.  
  122. nombreDefile = elementDefile->nombre;
  123. file->premier = elementDefile->suivant;
  124. free(elementDefile);
  125. }
  126.  
  127. return nombreDefile;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement