C語言源碼: [cpp] #include<stdio.h> #define maxsize 10000000 typedef struct tree { int parent; int numchild; }tree; tree T[maxsize]; int findroot(int x) { int temp; if(T[x].parent==-1) return x; else { temp=findroot(T[x].parent); T[x].parent=temp; } return temp; } int main() { int n,a,b,i,roota,rootb,max; while(scanf("%d",&n)!=EOF) { for(i=0;i<maxsize;i++) { T[i].parent=-1; T[i].numchild=1; } while(n--) { scanf("%d %d",&a,&b); a--; b--; roota=findroot(a); rootb=findroot(b); if(roota!=rootb) { T[rootb].parent=roota; T[roota].numchild+=T[rootb].numchild; } } max=0; for(i=0;i<maxsize;i++) if(T[i].numchild>max) max=T[i].numchild; printf("%d\n",max); } }