Vous êtes sur la page 1sur 3

Auditoire 1ère Année CPI Année Universitaire 2020-2021

TD Algorithmique, structure des données et complexité

Corrigé Série d’exercices N°3

Les Piles
Enseignante responsable : Olfa JEMAI

Exercice 1 :
/* pour identifier tous les chiffres qui composent un
nombre, on procède par des divisions successives par 10

Exemple : 2345 10

5 234 10

4 23 10

3 2 10

2 0

*/

Type pile : pointeur sur elm-pile


Procédure Affichage( nb:entier)
Var
P : pile
y, s, z :entier
Début
P
Creerpile(P) 2
y nb 3
Tantque (y ≠ 0) faire 4
s  y mod 10 5
empiler (P,s)
y  y div 10
fin tantque

Tantque (non pilevide(P)) faire


depiler (P,z)
ecrire(z)
fin tantque
Fin

1
Exercice 2 :

Procédure Parité(P1 :pile, var P2:pile var P3 :pile)

Var
x :entier

Début
creerpile(P2)
creerpile(P3)
tantque (P1 ≠ null) faire

depiler(P1,x)

si (x mod 2 = 0) alors
empiler(P2,x)
sinon
empiler(P3,x)
finsi

fin tantque

Fin

Exercice 3 :

1-
Procédure prefixe(exp_par : chaine, var exp_pref :chaine)
Var
i :entier
P :pile
x :caractère
Début
Exp_pref’’
Creerpile(P)
pour i de long(exp_par) à 1 par pas -1 faire
si (operateur(exp_par[i])=faux ) alors
concat(exp_par[i],exp_pref)
sinon
si (operateur(exp_par[i])=vrai ) alors
empiler(P, exp_par[i])
sinon
si exp_par[i]=’(‘ alors
concat(sommetpile(P),exp_pref)
depiler(P,x)

2
finsi
finsi
finsi
fin pour
Fin

2-

Fonction eval_pref(exp_pref : chaine ) :réel

Var
P : pile
i : entier
opr1,opr2 :entier
r :réel

Début
creerpile(P)
pour i de long(exp_pref) à 1 par pas -1 faire
si (operateur(exp_pref[i])=faux ) alors
empiler(P, exp_pref[i])
sinon
si binaire(exp_pref[i]) alors
depiler(P,opr1)
depiler(P,opr2)
roperationb(opr1,exp_pref[i],opr2)
empiler(P, r)
sinon
depiler(P,opr1)
roperationu(opr1,exp_pref[i])
empiler(P, r)
finsi
finsi
fin pour
eval_pref sommetpile(P)
fin

2-expression préfixée : ^ > + + A B D H < E F

Vous aimerez peut-être aussi