#include #include struct pile{ char val; struct pile *suiv; }; typedef struct pile pile; int empty (pile *p){ return p->suiv==NULL; } void push (pile **p,char v){ pile *nouveau=malloc(sizeof(pile)); nouveau->val=v; nouveau->suiv=*p; *p=nouveau; } char pop(pile **p) { int valDepiler; pile *temp=malloc(sizeof(pile)); temp = (*p)->suiv; valDepiler = (*p)->val; free(*p); *p = temp; return valDepiler; } int main(){ char c=0; pile *p=malloc(sizeof(pile)); printf("La pile attend vos ordres\n"); while (c!='q'){ scanf("%c",&c); if (c=='+'){ scanf("%c",&c); push((&p),c); printf("Le caractère %c a été ajouté\n",c); } if(c=='-'){ if (empty(p)==1){ printf("La pile est vide !\n"); }else{ c=pop(&p); printf("Le caractère %c a été supprimé\n",c); } } } printf("Au revoir\n"); return 0; }