TP1 TP2 DONE

已完成TP1和TP2
This commit is contained in:
2023-03-09 12:18:23 +01:00
parent d34936b229
commit 5dadd23503
15 changed files with 337 additions and 0 deletions

35
TP1/pile.c Normal file
View 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