三个函数

void Make_set(int x)
{
    int i;
    for(i=0;i<x;i++)
    {
        father[i]=i;
        num[i]=1;
    }
}
int Find_set(int x)
{
    if(father[x]!=x)
    {
        father[x]=Find_set(father[x]);
    }
    return father[x];
}
void Union(int x,int y)
{
    int a,b;
    a=Find_set(x);
    b=Find_set(y);
    if(a==b)
    return;
    if(num[a]>num[b])
    {
        father[b]=a;
        num[a]+=num[b];
    }
    else
    {
        father[a]=b;
        num[b]+=num[a];
    }
}