MDCIPROPE2026/sesion2_3/my_queue.py

58 lines
1.7 KiB
Python

"""Queue es una EDA que se basa en el principio FIFO (First In First Out), es decir,
el primer elemento en entrar es el primero en salir.
Es una estructura de datos lineal que permite almacenar y gestionar elementos de manera ordenada.
Las operaciones básicas de una cola incluyen:"""
class Queue:
def __init__(self): #Constructor de la clase Queue
self.lista = [] #Atributo de una clase en python, para que figure como un atributo de la clase se debe de usar self
def enqueue(self, item): # 11 <- 22 <- 33 <- 44 <- 55
self.lista.append(item)
def dequeue(self): # return el primer elemento de la lista y lo elimina de la lista
return self.lista.pop(0)
#Metodo de la clase de hoy
# def is_empty(self):
# respuesta_booleana = False
# if not self.lista: #Si la lista esta vacia, entonces la respuesta booleana es True
# respuesta_booleana = True
# return respuesta_booleana
def is_empty(self):
return len(self.lista) == 0
#Sintaxis que indica python como se va a imprimir un objeto de la clase Queue (Metodo magico) similar a un @Override
# def __str__(self):
# string_out = ""
# for e in self.lista:
# string_out += str(e) + " <- "
# return string_out
#Otra forma de escribir el metodo __str__ es la siguiente, es mas simple y mas eficiente, ya que no se necesita concatenar strings, sino que se puede convertir la lista a string directamente
def __str__(self):
return str(self.lista)
if __name__ == "__main__":
cola = Queue()
print(cola.is_empty())
cola.enqueue(11)
cola.enqueue(22)
cola.enqueue(33)
cola.enqueue(44)
cola.enqueue(55)
print(cola.is_empty())
cola.print()
while not cola.is_empty():
print(cola.dequeue())