5.6. Estructuras de datos de Python: colas
La estructura de datos es una forma particular de almacenar y organizar datos en una computadora para que puedan usarse de manera eficiente. En Python, una de las estructuras de datos más utilizadas es la cola. La cola es una estructura de datos lineal que sigue el orden de operación FIFO (First In First Out), lo que significa que el primer elemento insertado en la cola será el primero en ser eliminado.
Implementando colas en Python
En Python, las colas se pueden implementar de muchas maneras, como listas, colecciones.deque y la clase queue.Queue del módulo de cola.
1. Colas usando listas
La forma más sencilla de implementar una cola en Python es utilizando una lista. Sin embargo, las listas no son eficaces para este fin. Si bien las listas append y pop() son rápidas, insertar o eliminar elementos desde el principio de una lista es lento (porque todos los demás elementos deben desplazarse).
# Creando una cola cola = [] # Agregar elementos a la cola cola.append('a') cola.append('b') cola.append('c') print("Cola inicial", cola) # Eliminando elementos de la cola print("\nElementos fuera de cola") imprimir(cola.pop(0)) imprimir(cola.pop(0)) print("\nCola después de eliminar elementos", cola)
2. Colas usando collections.deque
Las colas en Python se pueden implementar de forma más eficiente utilizando la clase collections.deque, que está diseñada para realizar adiciones y eliminaciones rápidas desde ambos extremos.
de colecciones importar deque # Creando una cola q = deque() # Agregar elementos a la cola q.append('a') q.append('b') q.append('c') print("Cola inicial", q) # Eliminando elementos de la cola print("\nElementos fuera de cola") imprimir(q.popleft()) imprimir(q.popleft()) print("\nCola después de eliminar elementos", q)
3. Colas usando queue.Queue
La clase Queue del módulo de cola es especialmente útil en programación multiproceso, donde se manipulan objetos Python, que normalmente no son seguros para subprocesos. La clase Queue es segura para subprocesos y se puede utilizar para intercambiar datos entre varios subprocesos.
desde la cola de importación de cola # Creando una cola q = cola() # Agregar elementos a la cola q.poner('a') q.poner('b') q.poner('c') print("Cola inicial", q) # Eliminando elementos de la cola print("\nElementos fuera de cola") imprimir(q.get()) imprimir(q.get()) print("\nCola después de eliminar elementos", q)
En resumen, las colas son una herramienta útil en Python para almacenar y manipular datos de una manera organizada y eficiente. La elección de la implementación depende de las necesidades específicas de su programa, pero es importante comprender cómo funciona cada uno para tomar la mejor decisión.