58 lines
1.7 KiB
Python
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()) |