"""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())