Structure de données linéaires Terminale
Les Files Fiche C1-04
A – Définition
Une file est une structure de données dans laquelle on accède aux
éléments suivant la règle du premier arrivé premier sorti.
Autrement dit, on ne peut accéder
qu’à l’objet situé au début de la
file. On décrit souvent ce
comportement par l’expression :
« premier entré, premier sorti » ou
encore FIFO : First In, First Out.
La file comporte une tête et une
queue.
Exemple : file de clients qui attend à un guichet, etc...
B - Les opérations et les conditions du type abstrait de données file
Type abstrait : File
Données : éléments de type T
ENFILER DEFILER
Opérations
CREER_FILE_VIDE() qui retourne un objet de type File
La file F existe et elle est vide.
EST_VIDE(F) qui retourne un objet de type booléen
Retourne Vrai si la file F est vide et retourne Faux sinon.
EST_PLEINE(F) qui retourne un objet de type booléen
Retourne Vrai si la file F est pleine et retourne Faux sinon.
ENFILER (F, e) est défini si et seulement EST_PLEINE(F) = Faux
L’élément e est inséré en queue de la file F.
DEFILER (F) est défini si et seulement EST_VIDE(F) = Faux
L’élément situé en tête de la file F est enlevé et la pile et est
retourné.
Des applications concrètes :
En général, on utilise des files pour mémoriser temporairement des
transactions qui doivent attendre pour être traitées.
Les serveurs d'impression, qui doivent traiter les requêtes dans l'ordre
dans lequel elles arrivent, et les insèrent dans une file d'attente (ou
une queue en anglais).
Certains moteurs multitâches, dans un système d'exploitation, qui
doivent accorder du temps-machine à chaque tâche, sans en privilégier
aucune.
Exemples :
Soit une file F composée des éléments suivants : 12, 14, 8, 7, 19 et 22
(le premier élément rentré dans la file est 22 ; le dernier élément
rentré dans la file est 12). Pour chaque exemple ci-dessous on repart de
la file d'origine :
ajout(F,42) la file F est maintenant composée des éléments suivants
: 42, 12, 14, 8, 7, 19 et 22 (le premier élément rentré dans la
file est 22 ; le dernier élément rentré dans la file est 42)
retire(F) la file F est maintenant composée des éléments suivants
: 12, 14, 8, 7, et 19 (le premier élément rentré dans la file est
19 ; le dernier élément rentré dans la file est 12)
premier(F) renvoie 22, la file F n'est pas modifiée
si on applique retire(F) 6 fois de suite, file_vide?(F) renvoie
vrai
Après avoir appliqué retire(F) une fois, taille(F) renvoie 5.
Exercice
Soit une file F composée des éléments suivants : 1, 12, 24, 17, 21 et 72
(le premier élément rentré dans la file est 72 ; le dernier élément
rentré dans la file est 1). Quel est l'effet de l'instruction ajout(F,25)
Le premier élément de la liste devient 25