Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 (TP n° 7) :
Considérons une pile d’assiettes sales dans une cuisine (figure 1). La pile, initialement vide, se
remplit au fur et à mesure que les assiettes sont posées l’une au-dessus des autres.
On propose de gérer cette pile d’assiettes en utilisant une liste simplement chaînée. Une assiette
est caractérisée par son code (entier) et sa couleur.
2) Ecrire la fonction pile* initialiser_Pile() qui permet de créer une pile vide d’assiettes.
La fonction renvoie la pile créée.
3) Ecrire la fonction pile* empiler(pile *p, assiette *a) qui empile l’assiette a sur la pile
p et retourne la nouvelle pile.
4) Ecrire la fonction pile* depiler(pile *p) qui retire le sommet de la pile p et retourne la
nouvelle pile. Traiter le cas où la pile est vide.
5) Ecrire une procédure récursive void afficher_Pile(assiette *sommet) qui affiche les
assiettes d’une pile dont le sommet est passé en paramètres.
saisir des assiettes au clavier (code et couleur) jusqu’à ce que l’utilisateur entre un code
d’assiette qui vaut 0 ;
empiler les assiettes au fur et à mesure de leur saisi ;
afficher les assiettes ;
dépiler deux assiettes ;
afficher à nouveau les assiettes.
On se propose de modéliser une file constituée de piles d’assiettes sales dans une cuisine de
restaurant (figure 2).
Les piles d’assiettes sont posées au fur et à mesure qu’elles arrivent en cuisine dans une file.
Le plongeur nettoie les assiettes en les prenant, une par une, sur le dessus de la première pile
stockée.
7) Modifier la structure pile (exercice 1) pour qu’elle serve de structure de base de la file
d’assiettes.
9) Ecrire la fonction file* initialiser_File() qui permet d’initialiser une file vide de piles
d’assiettes. La fonction retourne la file créée.
10) Écrire une fonction file *enfiler(file *f, pile *p) permettant d’ajouter une pile
d’assiettes p dans la file f.
11) Ecrire la fonction file *defiler(file *f) qui permet de retirer une pile d’assiettes de la file
f et retourne la nouvelle file.
12) Écrire une fonction file *plonger(file *f) permettant au plongeur de retirer une assiette
pour la nettoyer.
13) Ecrire une procédure void afficher_File(file *f) qui affiche les piles d’assiettes de la
file f.