TP14 Manipulation des piles

publicité
Matière : Informatique
TP N°14 : Manipulation des piles (représentation chainée)
Objectif
L’objectif de ce TP est d’écrire une fonction permettant d’effectuer un tri par insertion d’un ensemble
de nombre entiers en utilisant les piles.
Etant donnée une pile A dont les éléments sont des entiers, l’objectif est de construire une pile B
contenant les mêmes éléments de A mais dans un ordre trié avec le minimum au sommet de la pile B.
Pour ce faire écrire en langage C les fonctions de manipulation des piles en représentation chainée
correspondantes aux opérations suivantes :





Empiler un élément ;
Dépiler un élément ;
Retourner le sommet d’une pile ;
Tester si une pile est vide ;
Afficher les éléments d’une pile.
Pour la création de la pile B, écrire une fonction trier() qui utilise une pile C vide au début en se basant
sur l’algorithme suivant :
Algorithme Tri;
Var A, B, C : pile;
X : entier;
Début
//Les piles B et C sont vide au début
Tant que (A n’est pas vide) faire
Si (B est vide ou sommet(A) < sommet(B)) alors
x = depiler(A);
empiler(B, x);
Tant que (C n’est pas vide) faire
x = depiler(C);
empiler(B, x);
Fin Tant que
Else
x = depiler(B);
empiler(C, x);
Finsi
Fin
Dans le programme principal, vous créez une pile A qui contient les éléments d’un tableau t = {4,
2, 3, 5, 8, 2, 6, 9, 3, 10}, après avoir affiché les éléments de la pile A, votre programme principal
devra faire à la fonction trier et afficher la pile B obtenu.
Téléchargement