Files
prog-c/tp3/TP3/stack.h

50 lines
1.5 KiB
C
Raw Normal View History

2024-10-06 15:32:20 +02:00
/***********************************************/
/***********************************************/
/** Implémentation des piles par les tableaux **/
/***********************************************/
/***********************************************/
#ifndef STACK_H_
#define STACK_H_
#include <stdarg.h>
#include <stdbool.h>
/***********************/
/* Déclaration du type */
/***********************/
typedef struct {
int size_array; // Taille totale du tableau alloué en mémoire.
int size_stack; // Nombre d'éléments dans la pile représentée.
int *array; // Tableau contenant les valeurs de la pile représentée.
} stack;
/************************/
/* Fonctions primitives */
/************************/
// Crée une pile vide.
stack *create_stack(void);
// Libère la mémoire allouée pour la pile.
void delete_stack(stack *);
// Renvoie vrai si la pile est vide, faux sinon.
bool isempty_stack(stack *);
// Renvoie le nombre d'éléments dans la pile.
int size_stack(stack *);
// Renvoie la valeur au sommet de la pile et la retire. Si la pile est vide, la
// fonction affiche un message sur la sortie erreur standard et termine le
// programme. Si l'occupation du tableau tombe à 25% après le pop(), le tableau
// est redimensionné par la fonction shrink_stack().
int pop(stack *);
// Ajoute une valeur au sommet de la pile. Si le tableau est plein, il est
// redimensionné au préalable, par la fonction grow_stack.
void push(int, stack *);
#endif // STACK_H_