int kruskal() { int i,j,k; for(k=0;k<m;k++){ i=myfind(nodes[k].i); j=myfind(nodes[k].j); if(i!=j){ unionij(i,j); ans+=nodes[k].value; } } if(ans>total)return 0; return 1; }
void kruskal(int n,int cost[10][10],int r[10]) { int count=0,select[10][2],k=0; int sum=0,min,i,j,u,v; while(count<n-1) { min=999; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(min>cost[i][j]&&cost[i][j]!=0) { min=cost[i][j]; u=i; v=j; } } } i=find(u,r); j=find(v,r); if(i!=j) { select[k][0]=u; select[k][1]=v; count++; k++; sum=sum+cost[u][v]; unionij(i,j,r,n); } cost[u][v]=cost[v][u]=999; } if(sum<999) { printf("spannig tree exist\n"); printf("the sum of cost is%d\n",sum); printf("the edges are\n"); for(i=0;i<n-1;i++) { printf("\t%d->%d\n",select[i][0],select[i][1]); } } else printf("spannig tree does not exist"); }
int kruskal() { int k=0,i,j,ii,ans=0; inti(); for(ii=0;ii<m;ii++){ if(k==n-1)break; i=find(nodes[ii].x); j=find(nodes[ii].y); if(i!=j){ xx[k]=nodes[ii].x; yy[k++]=nodes[ii].y; if(nodes[ii].len>ans)ans=nodes[ii].len; unionij(i,j); } } return ans; }