Estructura tipo cola
1. Qué es una cola? #
Una cola es una estructura de datos que sigue el principio de FIFO (First In, First Out), que significa "Primero en entrar, primero en salir". Piensa en una fila de personas esperando en una taquilla: la primera persona en la fila es la primera en ser atendida. Las colas son útiles cuando necesitas procesar elementos en el orden en que llegaron.
2. Cómo se implementa una cola en Python? #
En Python, puedes implementar una cola usando una lista (list), aunque para un uso más eficiente, es recomendable usar la clase deque del módulo collections, que está optimizada para agregar y quitar elementos en ambos extremos.
Ejemplos de uso de colas #
-
Crear una cola y encolar elementos:
1from collections import deque 2 3cola = deque() 4cola.append("persona1") 5cola.append("persona2") 6cola.append("persona3") 7print(cola)Salida de consola deque(['persona1', 'persona2', 'persona3'])
- ¿Qué hace?: Este código crea una cola vacía usando
dequey luego encola (agrega) los elementos"persona1","persona2", y"persona3". Finalmente, muestra la cola en la pantalla.
- ¿Qué hace?: Este código crea una cola vacía usando
-
Desencolar un elemento:
1from collections import deque 2 3cola = deque(["persona1", "persona2", "persona3"]) 4primera_persona = cola.popleft() 5print(primera_persona) 6print(cola)Salida de consola persona1 deque(['persona2', 'persona3'])
- ¿Qué hace?: Este código desencola (elimina y devuelve) el primer elemento de la cola, que es
"persona1", y luego muestra la cola después de la operación.
- ¿Qué hace?: Este código desencola (elimina y devuelve) el primer elemento de la cola, que es
-
Ver el primer elemento sin desencolarlo:
1from collections import deque 2 3cola = deque(["persona1", "persona2", "persona3"]) 4primera_persona = cola[0] 5print(primera_persona)Salida de consola persona1
- ¿Qué hace?: Este código muestra el primer elemento de la cola (
"persona1") sin quitarlo.
- ¿Qué hace?: Este código muestra el primer elemento de la cola (
-
Verificar si la cola está vacía:
1from collections import deque 2 3cola = deque() 4esta_vacia = len(cola) == 0 5print(esta_vacia)Salida de consola True
- ¿Qué hace?: Este código verifica si la cola está vacía comprobando si la longitud de la cola es
0. MuestraTruesi está vacía,Falsesi no lo está.
- ¿Qué hace?: Este código verifica si la cola está vacía comprobando si la longitud de la cola es
3. Por qué usar colas? #
Las colas son útiles cuando necesitas procesar elementos en el orden en que llegaron, como en la gestión de tareas en una impresora, en sistemas de atención al cliente, o en la ejecución de procesos en sistemas operativos. Son ideales para situaciones donde el orden de procesamiento importa.
4. Operaciones comunes con colas #
append(x): Encolar el elementoxal final de la cola.popleft(): Desencolar (eliminar y devolver) el primer elemento de la cola.[0]: Acceder al primer elemento de la cola sin eliminarlo.len(cola) == 0: Verificar si la cola está vacía.
Resumen del tema
Conceptos clave #
- Principio FIFO (First In, First Out): el primer elemento en ingresar es el primero en procesarse y salir.
- Uso de
collections.deque: lista doblemente enlazada optimizada para inserciones y extracciones en ambos extremos en tiempo (a diferencia delist.pop(0)que es ). - Operaciones Principales con
deque:- Enqueue (encolar):
cola.append(elemento)al final. - Dequeue (desencolar):
cola.popleft()extrae y retorna el elemento inicial en . - Frente:
cola[0]para inspeccionar el primer elemento.
- Enqueue (encolar):
- Casos de Uso: buffers de tareas, impresión por turnos, algoritmos de búsqueda en anchura (BFS) y procesamiento de eventos en tiempo real.
Qué debes recordar #
Utiliza siempre collections.deque con .append() y .popleft() para implementar colas FIFO de forma eficiente en tiempo .