コード例 #1
0
        public static GrafoNaoDirigido execute(Vertice origem, GrafoNaoDirigido grafo)
        {
            GrafoNaoDirigido arvore = new GrafoNaoDirigido(grafo.gerarGrafoNulo());

            vOrigem = origem;

            Aresta aresta = selecionarAresta(origem);

            while (aresta != null)
            {
                //adiciona a aresta a arvore
                arvore.adicionarAresta(vOrigem.id, aresta.vertice.id, aresta.peso);

                //seleciona a aresta de menor peso
                aresta = selecionarAresta(aresta.vertice);
            }

            return(arvore);
        }
コード例 #2
0
        public static GrafoNaoDirigido execute(GrafoNaoDirigido grafo)
        {
            grafoOrigem = new GrafoNaoDirigido(grafo.vertices);
            arvore      = new GrafoNaoDirigido(grafo.gerarGrafoNulo());

            Aresta aresta = FindArestaMenorPeso();

            while (aresta != null)
            {
                if (!HasCiclo(verticeOrigem, aresta))
                {
                    arvore.adicionarAresta(verticeOrigem.id, aresta.vertice.id, aresta.peso);
                }

                RemoveArestaGrafoCompleto(verticeOrigem, aresta);

                aresta = FindArestaMenorPeso();
            }

            return(arvore);
        }