BUT2/DEV/DEV1.1_suite/TP_Piles/Q1_Chainees.c~
2023-10-23 13:23:36 +02:00

55 lines
1.0 KiB
C

#include<stdio.h>
#include<stdlib.h>
typedef struct m{
char valeur;
struct m* suivant;
} maillon;
int empty(maillon* p_liste){
if (p_liste){
return 1;
}
return 0;
}
void push(maillon** p_pile, char new_valeur){
maillon* new_maillon = (maillon*) malloc(sizeof(maillon));
new_maillon->valeur = new_valeur;
new_maillon->suivant = *p_pile;
*p_pile = new_maillon;
}
char pop(maillon** p_pile){
char valeur= (*p_pile)->valeur;
maillon* p_suivant=(*p_pile)->suivant;
free(*p_pile);
*p_pile=p_suivant;
return valeur;
}
int main(void){
int choix=99;
char caractere;
maillon* p_pile=NULL;
while(choix!=3){
printf("1- nouvelle valeur 2- récupérer 3-quitter\n");
printf("choix : ");
scanf("%d",&choix);
//printf("%d\n",choix);
if (choix==1){
printf("valeur : ");
scanf(" %c",&caractere);
push(&p_pile,caractere);
}
if (choix==2){
if (empty(p_pile)){
caractere = pop(&p_pile);
printf("resultat : %c\n",caractere);
}
}
}
printf("O revoir BG\n");
return 0;
}