Ests
Structure des données en C
TP1- Pile
Mme F.Guerouate
Exercice 1
Fonction: Gestion d'une pile d'entiers - Cet exercice a pour but de comparer les codages d'une application effectués en C (en utilisant une structure).
Structure :
Généralités pour la gestion d'une Pile d'entiers
- La pile est gérée au travers d'une "structure" stPile comportant : -- un tableau nommé aTab d'entiers -- un entier non signé wDim (la taille du tableau) -- un entier non signé wSP (l’indice de la case à écrire lors de l’empilement) -- deux booléens bPileVide (mis à TRUE si la pile est Vide) et bPilePleine (mis à TRUE si la pile est Pleine).
- La représentation de cette pile est donnée ci-dessous :
[pic]
La gestion de la pile nécessite les fonctions suivantes :
- InitialiserPile : permet d'initialiser les variables de la structure
- Empiler : permet d’empiler un élément reçu en paramètre et de mettre à jour wSP, bPileVide et bPilePleine.
- Depiler : permet d’exporter (par un paramètre résultat) l’élément en sommet de pile et de mettre à jour wSP, bPileVide et bPilePleine.
- Afficher : permet d'afficher les éléments actuellement empilés
On donne ci-dessous, l’algorithme basique (tous les paramètres ne sont pas indiqués) de la fonction Empiler : Algorithme Empiler(Elem) Début Placer Elem dans la case d’indice SP Mettre PileVide à FALSE Incrémenter SP Si SP == Dim Alors Mettre PilePleine à TRUE FinSi Fin
L’algorithme de la fonction Depiler est "symétrique"
Contraintes de construction de la pile :
- La taille du tableau pour la pile est défini en constante : DIM_PILE
- L’instance de la structure Pile est allouée à la compilation (allocation automatique) dans la procédure de test (le main) : la dimension de la pile (DIM_PILE ) est passée en paramètre
- L’allocation du tableau aTab (tableau d'entiers), est également faite à la compilation.
- Le test des booléens bPilePleine et bPileVide (pour savoir si