merge过程:
void merge(int x,int y)
{
int f1=find(x),f2=find(y);
if (f1!=f2)
father[f1]=f2;
}
带“路径压缩”的非递归find函数:
int j,k;
j=i;
while (j!=f[j])
j=f[j];
while (i!=f[i])
{
k=i;
i=f[i];
f[k]=j;
}
return i;
if (f[i]=i)
return i;
f[i]=find(f[i]);
return f[i];
int find(int i)
{
}
带“路径压缩”的递归find函数:
int find(int i)
{
}