Théorie des graphes : Td2 tp2 pile université cadi ayyad
Télécharger PDFUNIVERSITE CADI AYYAD
Facult ́e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020Structures de Don ́ees
TD2/TP2 : Pile
Le but est de fabriquer une calculatrice `a pile, telles les HP. On ignorera les probl`emes
arithm ́etiques en utilisant le type int et en faisant donc les op ́erations arithm ́etiques modulo23 2
. Les objets contenus dans la pile peuvent ˆetre de type vari ́es. On manipulera ici des
entiers ou des listes (d’entiers ou de listes).
Les types de donn ́ees sont :
typedef int element_t;
typedef struct pile {
element_t this;
struct pile *next;
} *pile_t;
Manipulation d’une pile d’entiers
Faire une interface qui permette d’afficher le contenu de la pile, d’ajouter et de supprimer
des ́el ́ements. On conseille les ́etapes suivantes :
1. void imprime
element(elementt e);
2. void imprimepile(pilet p); qui utilise la fonction ci-dessus.
3. void empile(pilet *p, elementt e); et void depile(pilet *p); qui empile ou d ́epile un ́el ́ement. Vous pouvez aussi d ́ecider que la fonction depile donne comme r ́esultat l’objet
du haut de la pile, mais alors il faut faire attention au cas o`u la pile est vide.
4. element
t saisieelement() pour saisir un ́el ́ement.
5. void copy(pilet *p, int depth); qui copie le depth-i`eme ́el ́ement en premi`ere position
dans la pile.
6. void delete(pilet *p, int depth); qui d ́etruit le depth-i`eme ́el ́ement.
7. void rotate(pilet *p, int depth); qui ram`ene le depth-i`eme ́el ́ement en premi`ere position
dans la pile.
Op ́erations sur les entiers
Ajouter les op ́erations sur les entiers :
1. N ́egation du dernier ́el ́ement de la pile.
2. Addition/soustraction/multiplication des deux derniers ́el ́ements de la pile, remplac ́es
par le r ́esultat de l’op ́eration.
3. Division euclidienne, qui calcule quotient et reste.
4. Exponentiation.
Lundi 6 Avril 2020A. Bendarag