diff --git a/DEV1.1/TP17:Pile/chainee.c b/DEV1.1/TP17:Pile/chainee.c index cc59b27..7ee5100 100644 --- a/DEV1.1/TP17:Pile/chainee.c +++ b/DEV1.1/TP17:Pile/chainee.c @@ -13,23 +13,25 @@ int empty (pile *p){ } void push (pile **p,char v){ - pile *nouvelle=malloc(sizeof(pile)); - nouvelle->val=v; - nouvelle->suiv=*p; + pile *nouveau=malloc(sizeof(pile)); + nouveau->val=v; + nouveau->suiv=*p; + *p=nouveau; } -char pop (pile **p){ - pile *temp=malloc(sizeof(pile)); - temp=*p; - (*p)->val=(*p)->suiv->val; - (*p)->suiv=(*p)->suiv->suiv; - return temp->val; - free(temp); +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=NULL; + pile *p=malloc(sizeof(pile)); printf("La pile attend vos ordres\n"); while (c!='q'){ @@ -38,13 +40,12 @@ int main(){ scanf("%c",&c); push((&p),c); printf("Le caractère %c a été ajouté\n",c); - }else{ - if(c=='-'){ - if (empty(p)==1){ - printf("La pile est vide !\n"); - }else{ - printf("Le caractère %c a été supprimé\n",pop(&p)); - } + } 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); } } }