init projet
This commit is contained in:
49
tp3/TP3/stack.h
Normal file
49
tp3/TP3/stack.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/***********************************************/
|
||||
/***********************************************/
|
||||
/** 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_
|
||||
Reference in New Issue
Block a user