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