#include #include #define size 20 #define infi 9999 void prim(int L[][size],int node) { int T[size],i,j,k; int min_dist,v1,v2,total=0; for(i=1;i<= node;i++) T[i]=0; printf("\n--------------------------------"); printf("\n The minimum spanning tree is:"); printf("\n--------------------------------"); T[1]=1; for(k=2;k<= node;k++) { min_dist=infi; for(i=1;i<= node;i++) { for(j=1;j<= node;j++) { if(L[i][j]&&((T[i]&&!T[j])||(!T[i]&&T[j]))) { if(L[i][j] < min_dist) { min_dist=L[i][j]; v1=i; v2=j; } } } } printf("\n Edge (%d %d)and weight= %d",v1,v2,min_dist); T[v1]=T[v2]=1; total=total+min_dist; } printf("\n -----------------------------------"); printf("\n total path Length is= %d",total); printf("\n ------------------------------------"); } void main() { int L[size][size],node; int v1,v2,length,i,