Tutorial de estructura de datos de cola de Python
Domine las operaciones de cola FIFO en Python. Ejecute y ejecute nuestro ejemplo de cola interactiva que muestra los métodos de poner y quitar la cola.
Descripción general
Una cola es una estructura de datos lineal que funciona según el principio de primero en entrar, primero en salir (FIFO). Los elementos se agregan en la parte trasera (poner en cola) y se eliminan del frente (quitar de cola), de manera muy similar a la línea de pago en una tienda.
Las colas son fundamentales en informática para procesar las tareas en el orden exacto en que llegan. Actúan como amortiguadores que desacoplan los procesos de producción y consumo.
Python proporciona múltiples formas de crear colas: listas básicas, el módulo `collections.deque` para operaciones rápidas seguras para subprocesos y el módulo `queue.Queue` diseñado específicamente para aplicaciones multiproceso.
Código y salida de ejecución
Una cola FIFO interactiva creada con collections.deque para operaciones eficientes de eliminación frontal.
from collections import deque
class Queue:
def __init__(self):
self.buffer = deque()
def enqueue(self, item):
self.buffer.append(item)
print(f"Enqueued: {item}")
def dequeue(self):
if self.is_empty():
return "Underflow: Queue is empty"
dequeued = self.buffer.popleft()
print(f"Dequeued: {dequeued}")
return dequeued
def is_empty(self):
return len(self.buffer) == 0
def size(self):
return len(self.buffer)
# Test the Queue
q = Queue()
q.enqueue("Customer 1")
q.enqueue("Customer 2")
q.enqueue("Customer 3")
print(f"Queue Size: {q.size()}")
q.dequeue()
q.dequeue()
print(f"Remaining in Queue: {list(q.buffer)}")Enqueued: Customer 1
Enqueued: Customer 2
Enqueued: Customer 3
Queue Size: 3
Dequeued: Customer 1
Dequeued: Customer 2
Remaining in Queue: ['Customer 3']Implementación paso a paso
- Manejo de solicitudes asincrónicas en marcos web de servidor
- Colas de programación de trabajos en sistemas operativos
- Corredores de mensajes y buffers de cola (como RabbitMQ o Redis)
Preguntas frecuentes
¿Por qué no utilizar list.pop(0) para quitar la cola en Python?
El uso de `list.pop(0)` es lento porque requiere desplazar todos los elementos subsiguientes en la memoria un índice hacia la izquierda, lo que resulta en un rendimiento O(n). Por el contrario, `deque.popleft()` se ejecuta en tiempo constante O(1).
¿Qué es una cola prioritaria?
Una cola de prioridad es una variación en la que los elementos se sirven en función de una prioridad asociada en lugar de un orden de llegada. Python implementa esto a través del módulo `heapq`.
Temas relacionados
Implemente una pila LIFO en Python. Ejecute nuestro ejemplo de código de pila interactivo para dominar los límites de inserción, extracción, visualización y capacidad.
Implementación de lista enlazada individualmente de PythonAprenda cómo implementar una lista enlazada individualmente en Python. Explore la asignación de memoria dinámica, operaciones de nodos, inserción, recorrido y eliminación.