Ejemplo n.º 1
0
        // 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);
        }
Ejemplo n.º 2
0
        public GrafoNaoDirigido getAGMPrim(Vertice v1)
        {
            this.LimparCorVertices();

            return(Prim.execute(v1, this));
        }