SHARE
TWEET

Untitled

a guest Apr 23rd, 2019 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top