Las Colas son Estructuras de Datos lineales en las cuales la característica principal es que el acceso a los elementos se realiza en el orden en el que fueron almacenados.
De acuerdo a la forma de acceso a sus elementos, se las denominca estructuras FIFO (First In, First Out), primero en entrar primero en salir.
A diferencia del tipo de estructuras del capítulo anterior, que tienen un único punto de acceso, las colas presentan dos zonas importantes: El extemo final por donde se ingresan los elementos y la cabecera por donde se extraen y se eliminan los elementos.
Ejemplos de colas:
class Cola:
top = None
last = None # ultimo
def __init__(self, dato=None):
self.dato = dato
self.sig = None
def vacia(self):
if Cola.top is None:
return True
else:
return False
def vaciar(self):
Cola.top = Cola.last = None
def encolar(self, dato):
nuevo = Cola(dato)
if self.vacia():
Cola.top = Cola.last = nuevo
else:
Cola.last.sig = nuevo
Cola.last = nuevo
def desencolar(self):
if self.vacia():
print("Error, no se puede desencolar")
else:
print('desencolando ',Cola.top.dato)
Cola.top = Cola.top.sig
def imprimir(self):
tmp = Cola.top
while tmp is not None:
print(tmp.dato)
tmp = tmp.sig
#if __name__== '__main__':
print('empezamos')
cola = Cola()
cola.encolar(4)
cola.encolar(5)
cola.encolar(3)
cola.imprimir()
cola.desencolar()
cola.imprimir()