Algoritmo de prim
Enviado por andres_2013 • 8 de Noviembre de 2013 • Trabajo • 940 Palabras (4 Páginas) • 307 Visitas
ALGORITMO DE PRIM
void Prim(int grafo[N][N]) {
int MENOR_COSTO[N];
int MAS_CERCANO[N];
int i,j,k,min;
printf("\n Arbol de extension obtenido mediante el algoritmo de Prim:\n");
printf(" (Se indican las aristas y sus costos correspondientes)\n");
printf(" ----------------------------------------------------------\n\n");
for(i=1;i<nodos;i++){
MENOR_COSTO[i]=grafo[0][i];
MAS_CERCANO[i]=0;
}
for(i=1;i<nodos;i++){
min=MENOR_COSTO[1];
k=1;
for(j=2;j<nodos;j++)
if(MENOR_COSTO[j]<min){
min=MENOR_COSTO[j];
k=j;
}
/*se imprime la arista seleccionada*/
printf("\t* Nodo %d - Nodo %d, costo %d\n",MAS_CERCANO[k],k,grafo[k][MAS_CERCANO[k]]);
prim[k][MAS_CERCANO[k]]=grafo[k][MAS_CERCANO[k]];
prim[MAS_CERCANO[k]][k]=grafo[k][MAS_CERCANO[k]];
MENOR_COSTO[k]=infinito;
for(j=1;j<nodos;j++)
if((grafo[k][j]<MENOR_COSTO[j])&&(MENOR_COSTO[j]<infinito)){
MENOR_COSTO[j]=grafo[k][j];
MAS_CERCANO[j]=k;
}
}
ALGORITMO DEL GRADO DE UN NODO
Private Sub Command1_Click()
nfila = InputBox("Tamaño de matriz", "Grado De Un Nodo")
ncolumna = nfila
For X = 1 To nfila
For Y = 1 To ncolumna
matriza(X, Y) = InputBox("Ingrese numero en " & X & "," & Y, "Grado De Un Nodo")
CurrentX = 700 + (300 * Y)
CurrentY = 700 + (300 * X)
Print matriza(X, Y)
Next
Next
End Sub
Private Sub Command2_Click()
For X = 1 To nfila
For Y = 1 To ncolumna
If matriza(X, Y) = 1 Then
nodo(X) = nodo(X) + 1
End If
Next
Next
For X = 1 To nfila
MsgBox "Nodo " & X & " Tiene " & nodo(X) & " Aristas"
Next
End Sub
ALGORITMO DE CAMINOS MINIMOS
Private Sub B_Caminos_Click()
For k = 1 To R
ultimo = k
For h = 1 To R
For S = 1 To R
a = Val(matriz(h, k))
b = Val(matriz(k, S))
c = a + b
z = matriz(h, S)
If X < c Then
matriz(h, S) = z
Else
matriz(h,
...