Imaginez que vous faites la queue pour acheter un billet de cinéma. Le premier arrivé est le premier servi. C'est exactement le principe des files d'attente (queues) en informatique !
Une queue est une structure de données qui suit le principe FIFO (First In, First Out), c'est-à-dire que le premier élément ajouté est le premier à être retiré.
Les opérations principales d'une queue sont :
Bien que les queues et les piles soient des structures de données linéaires, elles diffèrent dans la façon dont les éléments sont ajoutés et retirés :
Opération | Pile (Stack) | Queue (File) |
---|---|---|
Ajouter | push (au sommet) | enqueue (à la fin) |
Retirer | pop (du sommet) | dequeue (du début) |
Consulter | peek (sommet) | peek (début) |
Les queues sont essentielles dans de nombreux domaines :
Les opérations sur une queue ont généralement les complexités suivantes :
Opération | Complexité |
---|---|
Enqueue | O(1) |
Dequeue | O(1) |
Peek | O(1) |
Voici comment implémenter une queue en Python :
class Queue:
def __init__(self):
self.items = []
# Enqueue - Ajouter un élément à la fin de la file
def enqueue(self, item):
self.items.append(item)
print(f"Élément {item} ajouté à la file")
# Dequeue - Retirer un élément du début de la file
def dequeue(self):
if not self.is_empty():
dequeued_item = self.items.pop(0)
print(f"Élément {dequeued_item} retiré de la file")
return dequeued_item
else:
print("La file est vide")
return None
# Peek - Consulter l'élément au début de la file sans le retirer
def peek(self):
if not self.is_empty():
return self.items[0]
else:
print("La file est vide")
return None
# Vérifier si la file est vide
def is_empty(self):
return len(self.items) == 0
# Afficher la file
def display(self):
print("File actuelle :", self.items)
# Utilisation de la file
ma_queue = Queue()
ma_queue.enqueue(10)
ma_queue.enqueue(20)
ma_queue.enqueue(30)
ma_queue.display() # Affiche : File actuelle : [10, 20, 30]
print("Premier élément :", ma_queue.peek()) # Affiche le premier élément : 10
ma_queue.dequeue() # Retire 10 de la file
ma_queue.display() # Affiche : File actuelle : [20, 30]
Explication du Code :
Testez vos connaissances avec ces exercices :
# Exercices :
# 1. Implémentez une fonction qui vérifie si une chaîne de caractères est un palindrome en utilisant une queue.
# 2. Écrivez un programme qui simule une file d'attente à une caisse enregistreuse avec des temps de service aléatoires.
# 3. Créez une queue qui peut retourner le maximum actuel en temps constant.
# 4. Implémentez une fonction pour inverser l'ordre des éléments d'une queue en utilisant une pile.
# 5. Écrivez un programme qui fusionne deux queues triées en une seule queue triée.
Les queues sont des structures de données simples mais cruciales, idéales pour gérer des données dans l'ordre d'arrivée. Elles sont largement utilisées dans la programmation pour des tâches comme la gestion des processus, le parcours de graphes, et bien plus encore.