Td2 tp2 pile université cadi ayyad Théorie des graphes

Théorie des graphes : Td2 tp2 pile université cadi ayyad

Télécharger PDF

UNIVERSITE 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