From bc03374f78f89f5217d6a6b135534c69e8e210f0 Mon Sep 17 00:00:00 2001 From: pourchot Date: Wed, 11 Jan 2023 15:18:44 +0100 Subject: [PATCH] 11 Janvier --- DEV1.1/TP17:Pile/chainee.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) 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); } } }