Contenu du cours
Aperçu des Algorithmes et des Structures de Données
Aperçu des Algorithmes et des Structures de Données
Files d'Attente
Contrairement à la pile, les files d'attente fonctionnent sur une base FIFO (First In, First Out). Par conséquent, le premier élément inséré dans une file d'attente sera le premier élément retiré. Cela signifie que pour les files d'attente, nous ne pouvons manipuler que le premier élément exclusivement. Le comportement de la structure de données de la file d'attente ressemble à la file d'attente dans la vie réelle.
Implémentation de la file d'attente
import numpy as np class Queue: def __init__(self): self.queue = np.array([]) # Initialize an empty NumPy array def enqueue(self, item): self.queue = np.append(self.queue, item) # Add an item to the end of the queue def dequeue(self): if self.is_empty(): print("Queue is empty.") # Handle empty queue case gracefully return None # Return None if the queue is empty item = self.queue[0] # Get the first item from the queue self.queue = np.delete(self.queue, 0) # Remove the first item from the queue return item # Return the removed item def is_empty(self): return self.queue.size == 0 # Check if the queue is empty # Example usage: queue = Queue() queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) print("Queue:", queue.queue) print("Dequeue:", queue.dequeue()) print("Queue after dequeue:", queue.queue) # Attempt to dequeue from an empty queue queue.dequeue() queue.dequeue() print("Dequeue from empty queue:", queue.dequeue()) # Should print 'Queue is empty.'
La file d'attente est également un type de données abstrait. Tout comme la pile, la file d'attente définit également deux opérations de base, insertion et suppression, qui sont implémentées dans deux méthodes de base :
enqueue()
- insère un élément à une extrémité d'une file d'attente ;dequeue()
- supprime le premier élément d'une file d'attente.
Le type de données abstrait de file d'attente peut être implémenté à l'aide de la structure de données tableau ou liste chaînée.
Complexité temporelle des opérations de base
Merci pour vos commentaires !