Académique Documents
Professionnel Documents
Culture Documents
Exercice 2 :
Une pile est une structure de données de type LIFO (Last In First Out) : le dernier entré est le
premier sorti. On suppose qu’on a les opérations suivantes dans le fichier « op_pile.py » :
- creer_pile() : création et renvoi de la pile « p »
- est_vide(p) : renvoie « True » si la pile est vide, « False » sinon.
- sommet(p) : renvoie l’élément sommet de la pile.
- depiler(p) : supprime de la pile le sommet.
- empiler(p,elt) : ajoute au sommet de la pile l’élément « elt ».
Écrivez les fonctions suivantes.
1) afficher(p) : cette fonction affiche tous les éléments de la pile.
2) depilerKelt(p,k) : cette méthode dépile « k » éléments si la pile contient au moins
« k » éléments, sinon elle dépile toute la pile.
3) depilerJusqua(p,elt) : cette fonction dépile la pile jusqu’à l’élément « elt » et l’élément
« elt » n’est pas dépilé. Si l’élément n’appartient pas à la pile, alors la méthode dépile
toute la pile.
Exercice 3 :
Une file est une structure de données de type FIFO (First In First Out) : le premier entré est le
premier sorti. On suppose qu’on a les primitives suivantes dans le fichier « op_file.py »:
- creer_file(f) : création et renvoi de la file « f ».
- est_vide(f) : renvoie « True » si la file est vide, « False » sinon.
- sommet(f) : renvoie le premier élément de la file.
- defiler(f) : supprime de la file le premier élément.
- enfiler(f,elt) : ajoute dans la file l’élément elt.
Écrivez les fonctions suivantes.
1) afficher(f) : cette fonction affiche tous les éléments de la file.
2) defilerJusqua(f,elt) : cette méthode défile la file jusqu’à l’élément « elt ». L’élément
« elt » n’est pas défilé. Si l’élément n’appartient pas à la file, alors la méthode défile
tous les éléments de la file.
Exercice 4 :
Écrivez les méthodes suivantes. On pourra éventuellement utiliser une ou des piles/files
temporaires, on utilisera les primitives créer_pile() qui renvoie une pile vide et créer_file() qui
renvoie une file vide.
1. appartient(p,elt) : cette fonction s’applique sur une Pile renvoie « vrai » si l’élément
appartient à la pile, « faux » sinon.
Attention : il est important que la pile ne change pas.
2. Inverser_file(f) : cette fonction inverse les éléments de la file à laquelle elle est
appliquée. On a le droit d’utiliser des files ou des piles temporaires.
3. Inverser_pile(p) : cette fonction inverse les éléments de la pile à laquelle elle est
appliquée. On interdit l’utilisation de files. Seules des piles temporaires peuvent être
utilisées.
Exercice2 :
1. from op_pile import *
2. #1) fonction afficher(f)
Exercice3 :
1. from op_file import *
2. #1) afficher() : cette fonction affiche tous les éléments de la file.
3. def afficher(f):
4. temp = creer_file()
5. while not est_vide(f):
6. elt = defiler(f)
Exercice4 :
1. from op_file import *
2. fromop_pile import *
3. #1) la fonction appartient(p,elt)
4. def Appartient(p,elt) :
5. p1 = creer_pile()
6. while not est_vide(p) and sommet(p) != elt:
7. empiler(p1,depiler(p))
8. resultat not est_vide(p)
9. while not est_vide(p1):
10. empiler(p,depiler(p1))
11. return resultat
12.
13. #2) la fonction Inverse(f)
14. importop_pile as pile # pour éviter d’écraser les fonctions de module pile
15. importop_file as file # par celles de file (Exp. est_vide())
16. def Inverser_file(f) :
17. p = pile.creer_pile()
18. while not file.est_vide(f):
19. pile.empiler(p,file.defiler(f))
20. while not pile.est_vide(p):
21. file.enfiler(f,pile.depiler(p))
22.
23. #3) dans ce cas utilisera deux piles auxiliaires, p1 et p2
24. def Inverser_pile1(p) :
25. p1 = creer_pile()
26. while not est_vide(p):
27. empiler(p1,depiler(p))
28. p2 = creer_pile()
29. while not est_vide(p1):
30. empiler(p2,depiler(p1))
31. while not est_vide(p2):
32. empiler(p,depiler(p2))
33.
34. def Inverser_pile2(p) :
35. p1 = creer_pile()
36. while not est_vide(p):
37. empiler(p1,depiler(p))
38. p = p1