Vous êtes sur la page 1sur 3

IPEIT

SM&SP A. U: 2021/2022
Chapitre 1

Piles & Files


(Résumé)
Les piles et les files sont deux structures de données pour lesquelles l’ajout et le retrait d’un élément ne
peut se faire qu’aux extrémités.
I. Pile :
1. Définition :
Une pile est une structure de données qui suit le principe d’une pile d’assiettes, « le dernier
arrivé est le premier servi », on parle du mode LIFO (Last In First Out).
2. Principe :
Une pile P est définie par deux opérations :
1. L’ajout d’un élément : insertion au sommet de P : empiler P
2. Le retrait d’un élément : suppression du sommet de P : dépiler P.

3. Exemples d’utilisation d’une pile :


 Traitement de texte : historique des modifications (ctrl z)
 Navigateurs : historique des navigations
 Evaluation des expressions mathématiques: notation polonaise inversée.

4. Implémentation d’une pile en python:


Une pile sera implémentée par une liste et on définit les fonctions suivantes :

 Creer_pile() : qui permet de créer et renvoyer une pile vide.


 Pile_vide(P) : qui permet de vérifier si P est une pile vide.
 Empiler(P,v) : qui permet d’insérer la valeur v au sommet de la pile P.
 Depiler(P) : qui permet de supprimer et renvoyer le sommet de la pile P.
*le choix du sommet de la pile : le dernier élément de la liste

Creer_pile() Pile_vide(P) Empiler(P,v) Depiler(P)

def Creer_pile() : def Pile_vide(P) : def Empiler(P,v) : def Depiler(P):


return [ ] Return P==[] P.append(v) If not Pile_vide(P):
return(P.pop())

H. Latrach - Piles & files- 1/3


IPEIT
SM&SP A. U: 2021/2022

Exercices d’application :
1. Ecrire une fonction python copier (P) qui permet de renvoyer une copie
P1 de P. Attention, la pile P doit être conservée.

2. Ecrire une fonction python inverser (P) qui permet de renvoyer une copie
inversée P1 de P. Attention, la pile P doit être conservée.

def copier (p): def inverser(p):


p1=creer_pile() p1=creer_pile()
p2=creer_pile() p2=creer_pile()
while not pile_vide(p): while not pile_vide(p):
empiler(p1,depiler(p)) x=depiler(p)
while not pile_vide(p1): empiler(p1,x)
x=depiler(p1) empiler(p2,x)
empiler(p2,x) while not pile_vide(p2):
empiler(p,x) empiler(p,depiler(p2))
return p2 return p1

II. File :
1. Définition :
Une File (ou queue) est une structure de donnés qui suit le principe d’une file d’attente :
« le premier arrivé est le premier sorti », on parle du mode FIFO (First In First Out).
2. Principe :
Une file F est définie par deux opérations :

 L’ajout d’un élément : insertion à la fin de F : enfiler F


 Le retrait d’un élément : suppression du premier élément de F : défiler F.

Enfiler V3 Défiler : suppression de V1


V1 V2  V1 V2 V3  V2 V3

FIGURE 2 – Définition d’une file

3. Exemples d’utilisation d’une file :


 Modélisation des files d’attente
 Calcul des moyennes mobiles

H. Latrach - Piles & files- 2/3


IPEIT
SM&SP A. U: 2021/2022

4. Implémentation d’une file en python:


Une file sera implémentée par une liste et on définit les fonctions suivantes :

 Créer_file() : qui permet de créer et renvoyer une file vide.


 File_vide(F) : qui permet de vérifier si F est une file vide.
 Enfiler(F,v) : qui permet d’insérer la valeur v la fin de la file F.
 Defiler(F) : qui permet de supprimer et renvoyer le premier élément de la file F.

Creer_file() File_vide(F) Enfiler(F,v) defiler(F) :

def Creer_file() : def File_vide(F ) : def Enfiler(F,v) : def Depiler(P):


return [ ] return F==[] F.append(v) If not File_vide(F):
return(F.pop(0))

Exercices d’application :
1. Ecrire une fonction python copier (F) qui permet de renvoyer une copie F1
de la file F. Attention, la file F doit être conservée.

2. Ecrire une fonction python supprimer( F, x) qui permet de supprimer


toutes les occurrences de l’élément x de la file F

def copier (F): def supprimer(f,x):


F1=creer_File() f1=creer_file()
F2=creer_File() while not file_vide(f):
while not File_vide(F): e=defiler(f)
x=defiler(F) if e!=x:
enfiler(F1,x) enfiler(f1,e)
enfiler(F2,x) while not file_vide(f1):
while not File_vide(F1): enfiler(f,defiler(f1))
enfiler(F,defiler(F))

return F2

H. Latrach - Piles & files- 3/3

Vous aimerez peut-être aussi