Escolar Documentos
Profissional Documentos
Cultura Documentos
1)
2)
3)
4)
5)
#include<stdio.h>
#define MAX 11
#define NumeroDeVerticesGrafo 8
}Aresta;
Aresta aresta[MAX];
int NumeroAresta;
}ListaDeAresta;
int MatrizGrafo[MAX][MAX] = {
// Matriz que contém as informações das arestas: Valor da Aresta, Sai De, Chega Em
{6,0,0,0,5,4,4,5,2,2,3}, // Sai De
{7,1,3,2,6,6,7,7,4,5,5} // Chega Em
};
void OrdenaPorValorArestaCrescente() {
int i, j;
Aresta temp;
temp = listaAresta.aresta[j];
listaAresta.aresta[j] = listaAresta.aresta[j+1];
listaAresta.aresta[j+1] = temp;
int i;
if (VetorJaFoiSoSai[i] == ChegaEm)
VetorJaFoiSoSai[i] = saiDe;
}
// Função para encontrar o valor no vetor "VetorJaFoiSoSai"
return(VetorJaFoiSoSai[NumeroVertice]);
void kruskalMagic() {
listaAresta.NumeroAresta = 0;
listaAresta.aresta[listaAresta.NumeroAresta].ValorAresta = MatrizGrafo[0][i];
listaAresta.aresta[listaAresta.NumeroAresta].SaiDe = MatrizGrafo[1][i];
listaAresta.aresta[listaAresta.NumeroAresta].ChegaEm = MatrizGrafo[2][i];
listaAresta.NumeroAresta++;
arestasArvoreMinima.NumeroAresta = 0;
VetorJaFoiSoSai[i] = i;
arestasArvoreMinima.aresta[arestasArvoreMinima.NumeroAresta] = listaAresta.aresta[i];
arestasArvoreMinima.NumeroAresta = arestasArvoreMinima.NumeroAresta + 1;
void ImprimirArestasECusto() {
int i, cost = 0;
// Função principal
void main() {
kruskalMagic();
ImprimirArestasECusto();