Aller au contenu principal
Publié le

Classe Queue en C#

Partager :

Introduction

La classe Queue en C# est un exemple de l'une des structures de données les plus fondamentales en informatique. Bien qu'elle puisse sembler simple, une file d'attente peut être la solution à de nombreux problèmes impliquant l'organisation et le traitement séquentiel des données.

Qu'est-ce qu'une Queue ?

Une Queue, ou file d'attente, est une structure de données qui fonctionne selon le principe FIFO (First In - First Out). Cela signifie que le premier élément à entrer dans la file sera le premier à en sortir.

Principales Caractéristiques

  • Ordre : La principale caractéristique d'une file est de maintenir l'ordre. L'ordre d'entrée des éléments est le même que l'ordre de sortie.
  • Dynamisme : Bien qu'elle puisse avoir une capacité maximale, une file peut généralement croître et se réduire selon les besoins.
  • Universalité : Presque tous les langages de programmation disposent d'une implémentation de file d'attente.

Méthodes Essentielles de la Classe Queue en C#

  • Enqueue(objet) : Ajoute un objet à la fin de la file.
  • Dequeue() : Supprime et retourne l'objet au début de la file.
  • Peek() : Retourne l'objet au début de la file sans le supprimer.
using System;
using System.Collections.Generic;

namespace Base {
  class ClasseFile {
    private Queue<int> file = new Queue<int>();
    private const int Multiplicateur = 10;
    private int nombre = 1;

    public void Run() {
      for (int indice = 1; indice <= 5; indice++) {
        file.Enqueue(nombre);
        nombre *= Multiplicateur; // 1, 10, 100, 1000, 10000
      }

      AfficherFile();

      Console.WriteLine($"\nSuppression du nombre {file.Dequeue()} de la file avec la méthode Dequeue().\n");

      AfficherFile();

      Console.WriteLine($"\nLe nombre qui se trouve en tête de file est le {file.Peek()}.");
    }

    private void AfficherFile() {
      foreach (var nombre in file)
        Console.WriteLine(nombre);
    }
  }
}

/*
  1
  10
  100
  1000
  10000

  Suppression du nombre 1 de la file avec la méthode Dequeue().

  10
  100
  1000
  10000

  Le nombre qui se trouve en tête de file est le 10.
*/

Variantes de la Queue

Il existe plusieurs variantes de la structure de file qui résolvent différents types de problèmes :

  • Priority Queue : Dans une file de priorité, des priorités sont attribuées aux éléments. Lorsqu'un élément est mis en file d'attente, il est placé à la position correspondant à sa priorité et non à l'ordre d'arrivée.
  • Circular Queue : Dans cette variante, le dernier élément pointe vers le premier, formant un cercle. Elle est utile pour les problèmes de tampon, comme la lecture de médias.
  • Double-ended Queue (Deque) : Les éléments peuvent être ajoutés ou supprimés aux deux extrémités.

Applications Pratiques

  1. Systèmes d'Exploitation : Utilisent des files pour gérer les processus en attente d'une ressource spécifique ou d'exécution.
  2. Systèmes de Jeux : Utilisés pour gérer les listes de tâches d'IA, les animations et bien plus encore.
  3. Applications en Temps Réel : Gestion des tâches dans les systèmes de contrôle du trafic aérien ou de télémétrie.

Avantages et Limitations

Avantages

  • Organisation : Maintient les données dans un ordre systématique.
  • Gestion des Ressources : Aide à garantir que les ressources sont utilisées de manière efficace, en particulier dans les systèmes multitâches.

Limitations

  • Accès aux Données : Dans une file standard, on ne peut accéder qu'au premier élément.
  • Capacité : Si la file est implémentée à l'aide d'un tableau, elle peut se remplir.

Conclusion

Comprendre la classe Queue en C# et ses applications est essentiel pour tout développeur. Elle permet une meilleure organisation des données et peut être la clé pour optimiser de nombreux algorithmes et systèmes.

Happy coding!