Creación de una Cola Basada en Listas en Python
Clase 19 de 23 • Curso de Estructuras de Datos Lineales con Python
Resumen
¿Cómo crear una cola basada en listas?
El concepto de colas es esencial en programación, especialmente en estructuras de datos. Una cola opera bajo el principio "primero en entrar, primero en salir" (FIFO: First In, First Out), lo que significa que el primer elemento en ser introducido en la cola será el primero en salir. En este segmento, abordaremos cómo crear una cola sencilla utilizando listas en Python, uno de los lenguajes de programación más populares hoy en día.
¿Cómo se inicia la construcción de una clase de cola?
Para comenzar, creamos un archivo llamado list_based_queue.py
. En este archivo, desarrollamos una clase denominada ListQueue
en Python. Esta clase será la base de nuestra estructura de cola. Los pasos iniciales incluyen definir el constructor de la clase, donde se establecerán los atributos:
class ListQueue:
def __init__(self):
self.items = [] # Lista vacía para almacenar elementos
self.size = 0 # Tamaño de la cola
En este constructor, self.items
es una lista vacía donde almacenaremos los elementos de la cola, y self.size
nos permitirá rastrear el tamaño actual de la cola.
¿Cuáles son los métodos esenciales de una cola?
Los métodos cruciales de una cola son enqueue
y dequeue
, los cuales se usarán para añadir y eliminar elementos, respectivamente.
- Enqueue (Añadir elementos): Este método permite agregar elementos al inicio de la cola, incrementando su tamaño.
def enqueue(self, data):
self.items.insert(0, data) # Inserta el elemento en la posición cero
self.size += 1 # Incrementa el tamaño de la cola
- Dequeue (Remover elementos): Este método elimina elementos desde el frente de la cola, disminuyendo su tamaño.
def dequeue(self):
if self.size > 0:
data = self.items.pop() # Remueve el elemento del final
self.size -= 1 # Decrementa el tamaño de la cola
return data
else:
return "La cola está vacía"
¿Cómo podemos visualizar los elementos de la cola?
Ver y entender lo que hay en nuestra cola es crucial para cualquier desarrollador. El método traverse
nos facilita esto:
def traverse(self):
total_items = self.size # Total de elementos
for i in range(total_items):
print(self.items[i]) # Imprime cada elemento de la cola
Durante el desarrollo, es común enfrentar errores. Uno podría encontrar que el número de total_items no es iterable debido a una mala especificación. Esto se soluciona, asegurando el uso de un tipo range
.
¿Qué sucede durante la ejecución?
Finalmente, en un entorno interactivo de Python
, importamos y probamos la clase ListQueue
:
from list_based_queue import ListQueue
q = ListQueue()
q.enqueue('eggs')
q.enqueue('ham')
q.enqueue('spam')
print(q.dequeue()) # Salida: 'eggs'
q.traverse() # Salida: 'spam', 'ham'
Veremos cómo se comportan los elementos de la cola, alineándose al principio FIFO. Así, al usar dequeue
en nuestra cola, el primer elemento añadido es el primero en ser removido, lo cual verifica el correcto funcionamiento de nuestro código.
¿Qué sigue después de implementar la cola basada en listas?
Tras la elaboración de una cola con listas, el siguiente paso puede ser desarrollar una estructura de cola basada en dos pilas (stacks). Esto puede sonar intrigante, pero es una técnica popular en entrevistas técnicas de programación. Esta práctica no solo amplía el conocimiento de los desarrolladores sino que también afina sus habilidades para resolver problemas avanzados.
¡Sigue avanzando en esta visión fascinante de las estructuras de datos y continúa reforzando tus habilidades como desarrollador!