#include #include #define N (200) int *id,*sz; int n; void uf3(int numElements) { int i; n=numElements; id=(int*) malloc(n*sizeof(int)); sz=(int*) malloc(n*sizeof(int)); if (!id || !sz) { printf("malloc failed %d\n",__LINE__); exit(0); } for (i=0; i1) { counter++; i=labs(random())%200; j=labs(random())%200; iLeader=find(i); jLeader=find(j); if (iLeader!=jLeader) { printf("%d %d: find(%d)=%d find(%d)=%d\n", numTrees,counter,i,iLeader,j,jLeader); unionFunc(iLeader,jLeader); numTrees--; counter=0; } } free(id); free(sz); }