Queue Data Structure in Python with deque
First in, first out: serve items in arrival order with collections.deque, fast at both ends.
- append() and popleft() on a deque
- Why list.pop(0) is slow
- Where queues are used
Join at the back, leave from the front
La cola (queue) sigue la regla primero en entrar, primero en salir (FIFO), como la fila de la caja: la primera persona en llegar es la primera en ser atendida. Las colas se usan para planificar tareas y en el algoritmo de búsqueda en anchura (BFS).
Puntos clave
queue.append(x)adds to the back.queue.popleft()removes from the front inO(1).list.pop(0)must shift every element, so it isO(n).- Queues drive task scheduling and breadth-first search.
¿Cuándo se usa?
- Desarrollar tu forma de pensar y entender paso a paso cómo funciona un algoritmo.
- Elegir el enfoque adecuado cuando hay que procesar muchos datos o acelerar un programa.
- Prepararte para exámenes, ejercicios y entrevistas de programación.
Mira cómo funciona
Haz enqueue y dequeue para ver que los elementos salen en el mismo orden en que llegaron.
Código de ejemplo
from collections import deque
queue = deque(["first", "second"])
queue.append("third")
print("served:", queue.popleft())
print("waiting:", list(queue))
Resultado de la ejecución
served: first
waiting: ['second', 'third']
Explicación del código
deque permite añadir elementos por la derecha con append() y quitarlos por la izquierda con popleft(), ambos en O(1). Con una lista normal, quitar el primer elemento cuesta O(n), porque todos los elementos siguientes tienen que desplazarse, y por eso deque es la opción adecuada para una cola.
Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.
Ejercicios de práctica
Prueba a modificar el código siguiendo las ideas de abajo. Cambiar el código y ver el resultado te ayudará a entender la lección mucho mejor que solo leerla.
- Prueba con una lista vacía, una lista de un solo elemento y una lista con repetidos.
- Muestra el estado después de cada paso para ver el algoritmo en acción.
- Mide el tiempo de ejecución con 100, 1.000 y 10.000 elementos y compáralo con otra solución.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Course Schedule Order Order courses so every prerequisite comes first. Difícil
- Can We Split Into Two Teams? Decide whether people can be assigned to two teams so that each listed pair is on opposite teams. Intermedio