void init()//初始化函数
{
int i;
for(i = 1; i <= n; i ++)
f[i] = i;
return;
}
int find(int v)//查找根结点
{
if(f[v] == v)
return v;
else
{
//这里是路径压缩,每次在函数返回时,把遇到的结点改为根结点的编号
//提高找到根结点的速度
f[v] = find(f[v]);
return f[v];
}
}
void merge(int x,int y)//合并两个子集的函数
{
int t1,t2;
t1 = find(x);
t2 = find(y);
if(t1 != t2)
{
f[t1] = t2;
}
return;
}