La file d’attente est une structure de données polyvalente que vous pouvez utiliser dans de nombreux contextes. Des algorithmes d’ordonnancement de l’unité centrale aux applications web, on la trouve partout.


Si vous souhaitez devenir un développeur Python, il est essentiel que vous vous familiarisiez avec cette structure de données simple mais omniprésente. Découvrons ce qu’est une structure de données de type file d’attente et comment en implémenter une en Python.

Qu’est-ce que la structure de données de file d’attente ?

Illustration d'une structure de données de file d'attente
Crédit image : Wikipedia

Une file d’attente est une structure de données linéaire qui suit le principe du premier entré-premier sorti (FIFO). Cela signifie que lorsque vous récupérez un élément d’une file d’attente, vous obtenez celui que vous avez ajouté avant les autres.

Voici les opérations de base que vous pouvez effectuer sur une file d’attente :

  • Enqueue : Ajoute des éléments à la file d’attente.
  • Dequeue : Retirer des éléments de la file d’attente.
  • Imprimer : Imprime les éléments de la file d’attente.
  • Front : Obtenir l’élément en tête de la file d’attente.
  • Arrière : Récupère l’élément situé à l’arrière de la file d’attente.

Vous pouvez implémenter la structure de données de file d’attente en Python de deux manières : en utilisant soit un conteneur de liste, soit une file d’attente à double extrémité à partir du module collections. Pour ce programme, vous utiliserez une liste.

Comment implémenter la structure de données de file d’attente en Python

Vous allez implémenter une file d’attente en utilisant le conteneur list en Python. Commencez par déclarer une liste vide avec le nom file.

 queue = [] 

Vous devez maintenant accepter les entrées de l’utilisateur et effectuer l’opération qu’il a saisie. Tout d’abord, imprimez une ligne invitant l’utilisateur à saisir une commande. Ensuite, attendez l’entrée de l’utilisateur et stockez-la dans le fichier commande variable.

En utilisant les instructions if de Python, effectuez l’opération correspondant à la commande saisie par l’utilisateur. S’il saisit une commande non reconnue, quittez le programme. Placez ces opérations à l’intérieur d’une boucle while infinie pour vous assurer que le programme continue à fonctionner tant que l’utilisateur n’a pas quitté le programme.

 while True:
  command = input("What do you want to do? ")

  if command == "enqueue":
    # code
  elif command == "dequeue":
    # code
  else:
    break

print(queue)

Enqueue

Maintenant que vous avez traité le flux de contrôle principal du programme, vous pouvez définir le bloc de code pour chaque opération. Tout d’abord, écrivez le code pour enqueue. Enqueue signifie insérer un élément à la fin de la file d’attente. Vous pouvez le faire en utilisant la fonction append() méthode :

 if command == "enqueue":
  enqueue = int(input("Enter the element to Enqueue: "))

Dequeue

Maintenant, écrivez le code pour retirer un élément de la file d’attente. Vous pouvez le faire en utilisant la méthode pop avec 0 comme index. Pourquoi ? Comme vous l’avez appris plus tôt, une file d’attente suit l’ordre FIFO, donc le premier élément que vous mettez en file d’attente doit être le premier élément que vous retirez de la file d’attente.

 if command == "dequeue":
  queue.pop(0)

Avant

Passons maintenant à l’écriture du code permettant d’imprimer l’élément situé à l’avant de la file d’attente. Il suffit d’imprimer l’indice 0 de la file d’attente.

 if command == "front":
  print(queue[0])

Arrière

Comme pour l’opération avant, l’opération arrière consiste à imprimer l’élément au dernier indice. Pour ce faire, il faut d’abord utiliser la fonction len() sur la file d’attente, puis soustraire 1 pour trouver le dernier indice.

 if command == "rear":
  print(queue[len(queue) - 1])

Imprimer

Enfin, écrivez le code de la commande print. Imprimez simplement la liste à l’aide de la commande standard de Python print() fonction.

 if command == "print":
  print(queue)

Si le texte saisi par l’utilisateur ne correspond pas à une commande prise en charge, sortez de la boucle while à l’aide d’une instruction break. Le code final devrait ressembler à ceci :

 queue = []

while True:
    command = input("What do you want to do?\n")

    if command == "enqueue":
        enqueue = int(input("Enter the element to Enqueue: "))
        queue.append(enqueue)
    elif command == "dequeue":
        queue.pop(0)
    elif command == "print":
        print(queue)
    elif command == "front":
        print(queue[0])
    elif command == "rear":
        print(queue[len(queue)-1])
    else:
        break

print(queue)

Exécutez le programme pour tester les différentes opérations de la file d’attente. Utilisez la commande print pour voir comment elles affectent votre file d’attente. Vous avez maintenant créé votre propre file d’attente en Python.

La file d’attente n’est qu’une des nombreuses structures de données utiles

Le concept de structure de données est un concept essentiel que tout étudiant en informatique doit maîtriser. Il y a de fortes chances que vous ayez déjà appris ou travaillé avec des structures de données de base telles que les tableaux ou les listes.

Les intervieweurs ont également tendance à poser des questions relatives aux structures de données. Par conséquent, si vous souhaitez décrocher un emploi bien rémunéré dans le domaine de la programmation, vous devrez rafraîchir vos connaissances en matière de structures de données.