File (structure de données)

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir File.
Pour les articles homophones, voir Fil et Phil.

En informatique, une file (en anglais queue) est une structure de données basée sur le principe « Premier arrivé, premier servi ! » en anglais FIFO (First In, First Out), ce qui veut dire que les premiers éléments ajoutés à la file seront les premiers à être récupérés. Le fonctionnement ressemble à une file d'attente : les premières personnes à arriver sont les premières personnes à sortir de la file.

Sommaire

[modifier] Applications

Cette structure est utilisée par exemple :

  • En général, 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).
  • Certains moteurs multitâches, dans un système d'exploitation, qui doivent accorder du temps-machine à chaque tâche, sans en privilégier aucune.
  • Un algorithme de parcours en largeur utilise une file pour mémoriser les nœuds visités.
  • Pour créer toutes sortes de mémoires tampons (en anglais buffers).

[modifier] Primitives

Voici les primitives communément utilisées pour manipuler des files. Il n'existe pas de normalisation pour les primitives de manipulation de file. Leurs noms sont donc indiqués de manière informelle.

  • « Enfiler » : ajoute un élément dans la file. Terme anglais correspondant : « Enqueue ».
  • « Défiler » : renvoie le prochain élément de la file, et le retire de la file. Terme anglais correspondant : « Dequeue ».
  • « La file est-elle vide ? » : renvoie « vrai » si la file est vide, « faux » sinon.
  • « Nombre d'éléments dans la file » : renvoie le nombre d'éléments dans la file.

[modifier] Algorithme

 Procédure PUSH (objet : o) //ajouter un élément sur la file
 Début
  Si sommet < max Alors
    Tfile[sommet++] <- o
  Sinon
    Afficher "File pleine"
  Fin Si
Fin
 Fonction POP () : objet //enlever un élément (le premier) de la file et le renvoyer
 objet : o
  Début
  Si non vide() Alors
    o <- Tfile[0]
    sommet <- sommet - 1
  Sinon
    Afficher "File vide"
  Finsi
Retourner o
Fin

[modifier] Voir aussi