Overview
Una cola es una colección FIFO (primero en entrar, primero en salir). Los elementos se añaden al final y se eliminan del frente.
Analogy
Como una fila de supermercado: los clientes se añaden al final y se atienden desde el frente.
Step-by-step
- Usa collections.deque para O(1) en ambos extremos
- enqueue: deque.append(elemento)
- dequeue: deque.popleft() elimina el frente
- peek: deque[0] sin eliminar
Visual
from collections import deque
q = deque()
q.append(1) # [1]
q.append(2) # [1,2]
q.popleft() # devuelve 1, q=[2]
Common mistakes
- Usar lista con pop(0) → O(n); usa deque.popleft() → O(1)
- Usar queue.Queue en lugar de deque para código de una sola hebra
Practice questions
- Implementa BFS con cola
- Implementa cola con dos pilas
Time
O(1) enqueue y dequeue con deque