Red de conocimiento informático - Conocimiento sistemático - Solución de código fuente

Solución de código fuente

void SpnTree (AdjList g)

//Utilice el "método del círculo de ruptura" para resolver el árbol de expansión de costo mínimo de un gráfico no dirigido conectado ponderado.

{typedef struct {int i,j,w}nodo. // Supongamos que la información del vértice es el número de vértice y el peso es un número entero.

Aristas del nodo[];

scanf("%d%d", &e&n); //Ingrese el número de aristas y vértices.

for(I = 1;I<=e;I++) //Arista de entrada e: vértices y pesos.

scanf("%d%d%d ", & borde[i].i & borde[i].j & borde[i].w);

for( I = 2;i<= e;I++) //Ordena los bordes en orden inverso según su peso.

{ borde[0]= borde[I];j = I-1;

mientras (borde[j].w & ltedge[0].w)borde[ j +1]= borde[j-];

borde[j+1]= borde[0];}//para

k = 1; por ejemplo = e;< / p>

while (por ejemplo & gt = n) // Rompe el círculo hasta que el número de lados e = n-1.

{if (connect(k)) //Si el k-ésimo borde todavía está conectado, elimínelo.

Borde[k]. w = 0;eg-;}//Prueba el siguiente borde [k] y establece el peso en 0 para eliminar el borde.

k++; //Siguiente borde

}//Cuando

}//El algoritmo finaliza.