Пример #1
0
 def barrido_amplitud(self, ver_origen):
     """Barrido en amplitud del grafo."""
     cola = Cola()
     while (ver_origen < self.tamanio()):
         vertice = self.inicio.obtener_elemento(ver_origen)
         if (not vertice['visitado']):
             vertice['visitado'] = True
             cola.arribo(vertice)
             while (not cola.cola_vacia()):
                 nodo = cola.atencion()
                 print(nodo['info'], nodo['data'])
                 aristas = 0
                 while (aristas < nodo['aristas'].tamanio()):
                     adyacente = nodo['aristas'].obtener_elemento(aristas)
                     pos_vertice = self.buscar_vertice(adyacente['destino'])
                     nuevo_vertice = self.inicio.obtener_elemento(
                         pos_vertice)
                     if (not nuevo_vertice['visitado']):
                         nuevo_vertice['visitado'] = True
                         cola.arribo(nuevo_vertice)
                     aristas += 1
         ver_origen += 1
Пример #2
0
print ('Para cola 1, agregamos: ')
for i in (lista1):
     cola1.arribo(i)
     print (i)


print ()

print ('Para cola 2, agregamos: ')
for i in (lista2):
     cola2.arribo(i)
     print (i)

print()

while (not cola1.cola_vacia() and not cola2.cola_vacia()):
 ### comparamos elemento a elemento desde el frente de cada cola con la otra
     if (cola1.en_frente() < cola2.en_frente()):
         cola_final.arribo(cola1.atencion())
     else:
         cola_final.arribo(cola2.atencion())
 ####si una de las dos colas esta vacia, cargaremos el elemento restante de la otra cola ,a la cola final
     if (cola1.cola_vacia()):
         cola_final.arribo(cola2.atencion())
     if (cola2.cola_vacia()):
         cola_final.arribo(cola1.atencion())
        
print ('Cola final')
cantidad_elemento = 0
while (cantidad_elemento < cola_final.tamanio()):
     dato = cola_final.mover_final ()