Developpement/23DEV1.1/TPS1/TP2/23-Piles/Chainee.c

59 lines
1.1 KiB
C
Raw Permalink Normal View History

2024-12-09 11:53:11 +01:00
#include <stdio.h>
#include <stdlib.h>
struct maillon_s{
char valeur;
struct maillon_s* suivant;
};
typedef struct maillon_s maillon;
void push(Pile* pile, int element) {
Maillon* nouveauMaillon = (Maillon*)malloc(sizeof(Maillon));
if (nouveauMaillon == NULL) {
fprintf(stderr, "Erreur d'allocation mémoire.\n");
exit(EXIT_FAILURE);
}
nouveauMaillon->donnee = element;
nouveauMaillon->suivant = pile->sommet;
pile->sommet = nouveauMaillon;
}
int pop(Pile* pile) {
if (!pile_empty(pile)) {
Maillon* maillonPop = pile->sommet;
int donneePop = maillonPop->donnee;
pile->sommet = maillonPop->suivant;
free(maillonPop);
return donneePop;
} else {
fprintf(stderr, "La pile est vide.\n");
exit(EXIT_FAILURE);
}
}
int empty(const Pile* pile) {
return (pile->sommet == NULL);
}
/*
void push(pile* p, char new){
maillon* m = (maillon) malloc(sizeof(maillon));
m->valeur = nouveaux;
m->suivant = *p;
*p = m;
}
char pop(pile* p){
maillon* m = (*p)-> valeur;
pile* tp = *p;
}
int empty(pile* p){
return p == NULL;
}
*/