#include #include typedef struct maillon_s { struct maillon_s* suivant; int value; struct maillon_s* premier; } maillon; int Empty(maillon* premier) { if (premier == NULL) { return 1; } return EXIT_SUCCESS; } void Push(int value, maillon* premier) { maillon* p = malloc(sizeof(maillon)); if (!Empty(premier)) { p->value = premier->value; p->suivant = premier->suivant; premier->suivant = p; premier->value = value; } else { premier->value = value; } } int Pop(maillon* premier) { maillon* p; int value; if (Empty(premier)) { exit(EXIT_FAILURE); } value = premier->value; if (premier->suivant==NULL) { premier = NULL; } else { p = premier->suivant; premier->value = p->value; premier->suivant = p->suivant; free(p); } return value; } void AfficherListe(maillon* premier) { maillon* p; for (p=premier ; p != NULL; p = p->premier) { printf("%u %u %u %u %u", p->value); } printf("\n"); } int main(int argc, char const argv[]) { int entier; int i; maillon* premier = malloc(sizeof(maillon)); for(i=1;i<=5;i++) { printf("Entier n°%d : ",i); scanf("%d", &entier); Push(entier, premier); } AfficherListe(premier); return EXIT_SUCCESS; }