// Busca a aresta de menor peso private static Aresta FindArestaMenorPeso() { int pesoMenor = 1000; Aresta arestaMenorPeso = null; grafoOrigem.LimparCorVertices(); foreach (Vertice vertice in grafoOrigem.vertices) { foreach (Aresta aresta in vertice.adjacentes) { if (aresta.peso <= pesoMenor && aresta.vertice.cor == "BRANCO") { if (aresta.peso == pesoMenor) { Aresta arestaEscolhida = Prim.ArestasComMesmoPeso(arestaMenorPeso, verticeOrigem, aresta, vertice); pesoMenor = arestaEscolhida.peso; arestaMenorPeso = arestaEscolhida; } else { pesoMenor = aresta.peso; arestaMenorPeso = aresta; verticeOrigem = vertice; } } } vertice.cor = "VERDE"; } return(arestaMenorPeso); }
private static bool HasCiclo(Vertice verticeOrigem, Aresta aresta) { arvore.LimparCorVertices(); return(VerificaArestaCiclo(verticeOrigem, aresta)); }