Files
Présentation
En informatique, une file est une liste avec des restrictions. Cette fois-ci l’analogie est celle de la file d’attente. La première personne entrée est la première à sortir. Ainsi on ne pourra récupérer les éléments d’une file que dans l’ordre dans lequel ils sont entrés.
Ici, on peut insérer un nouvel élément seulement à l’entrée de la file et on peut retirer un élément uniquement à la sortie
MISSING GRAPHIC
Interface
Définition
Voici donc les éléments les plus courants de l’interface d’un pile :
- enfile(x) : insère un élément à l’entrée de la file ;
- defile() : enlève l’élément en bout de file ;
- sortie() : renvoie l’élément en sortie de file ;
- taille() : renvoie le nombre d’éléments de la file ;
- estVide() : renvoie
True
si la file est vide,False
sinon ;
Exemple
- Considérant la suite d’instructions suivante, donnez le contenu de la
file à chaque ligne repérée par un numéro en commentaire.
ma_file
est initialement une file vide. On représentera une file par des éléments entre crochets comme en Python.
ma_file.enfile(2)
ma_file.enfile(3) #1
ma_file.enfile(5)
ma_file.enfile(7) #2
ma_file.defile() #3
ma_file.sortie() #4
ma_file.enfile(9)
ma_file.defile() #5
Implémentation
Comme avec les piles, il existe plusieurs façons d’implémenter une même interface. Vous allez créer deux implémentations de l’interface définie ci- dessus.
list
Python
- Complétez la classe
FilePerso
ci-dessous pour implémenter l’interface d’une file (enfile(x), defile(), sortie(), taille(), estVide())
class FilePerso:
"""File personalisée"""
def __init__(self):
self.liste = []
ma_file = FilePerso()
Deux piles
Il existe une façon particulière d’implémenter une file avec deux piles.
- En réutilisant la classe
Pile
de la page précédente créez une nouvelle classeFile
. On utilisera deux piles :pilegauche
etpiledroite
. Pour enfiler un élément, on l’empile danspilegauche
. Pour défiler un élément, on le dépile depiledroite
. Mais sipiledroite
est vide, on dépile intégralementpilegauche
danspiledroite
avant de dépiler un élément depiledroite
.
Bilan
Les files sont basées sur le principe FIFO pour First In First Out , ce qui signifie « premier entré, premier sorti ». Comme pour les piles, quand on sera dans une telle situation, il faudra alors utiliser cette structure de données. Elle est utilisée par exemple pour envoyer des instructions à un processus. Les instruction sont traitées dans leur ordre d’arrivée.