TP1 TP2 DONE
已完成TP1和TP2
This commit is contained in:
35
TP1/pile.c
Normal file
35
TP1/pile.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "pile.h"
|
||||
|
||||
struct Pile* pileInit(){
|
||||
struct Pile *pile = malloc(sizeof(*pile));
|
||||
pile->pos = -1;
|
||||
return pile;
|
||||
} // Initialisation de la pile
|
||||
|
||||
|
||||
char* pilePop(struct Pile *pile){
|
||||
if(pile->pos == -1){
|
||||
printf("pilePop : ERROR PILE VIDE");
|
||||
return NULL;
|
||||
} // si pos = -1, cela signifie que la pile est vide, donc on ne peut pas retirer d'éléments de la pile
|
||||
pile->pos--; // on décrémente pos car on va retirer le dernier élément, donc la taille de la pile va diminuer
|
||||
return pile->stack[pile->pos+1]; // on retire le dernier élément
|
||||
}
|
||||
|
||||
void pilePush(struct Pile *pile, char *string){
|
||||
if(pile->pos == TAILLE_PILLE){
|
||||
printf("pilePush : ERROR PILE PLEINE");
|
||||
} // si la taille de la pile est égale à la valeur dans pos, la pile est pleine, on ne peut donc pas ajouter d'éléments dedans
|
||||
else {
|
||||
pile->pos++;
|
||||
strcpy(pile->stack[pile->pos], string);
|
||||
} // sinon, on incrémente pos et on ajoute l'élément demandé grâce à la fonction strcpy
|
||||
}
|
||||
|
||||
char* pileTop(struct Pile *pile){
|
||||
return pile->stack[pile->pos];
|
||||
} // renvoie la dernière valeur de la pile
|
||||
|
||||
int pileSize(struct Pile *pile){
|
||||
return pile->pos;
|
||||
} // retourne la taille actuelle de la pile
|
||||
Reference in New Issue
Block a user