Algoritmos en Python

Queue Data Structure in Python with deque

First in, first out: serve items in arrival order with collections.deque, fast at both ends.

  • Intermedio
  • 2 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • append() and popleft() on a deque
  • Why list.pop(0) is slow
  • Where queues are used
deque(["first", "second", "third"])
firstfront
second
thirdback
↑ popleft() serves "first"

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

  1. queue.append(x) adds to the back.
  2. queue.popleft() removes from the front in O(1).
  3. list.pop(0) must shift every element, so it is O(n).
  4. 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

Ejecutar código →
main.py
from collections import deque

queue = deque(["first", "second"])
queue.append("third")

print("served:", queue.popleft())
print("waiting:", list(queue))
Obtén un botón Run para este ejemplo

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.

  1. Prueba con una lista vacía, una lista de un solo elemento y una lista con repetidos.
  2. Muestra el estado después de cada paso para ver el algoritmo en acción.
  3. Mide el tiempo de ejecución con 100, 1.000 y 10.000 elementos y compáralo con otra solución.
Ejecutar en el compilador de Python →

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.

Todos los retos