并查集最主要的是查找元素是否在同一棵树上,或者看看所给的元素分布在几棵树上。
最主要的是两个函数一个是寻找根节点的函数,另一个则是压缩路径的函数,根节点有一定的特性,
根节点的数等于它本身。
附上两个最基本的函数:
1.寻找根节点的函数;
int findd(int x)
{
if(a[x]==x)
return x;
else
return a[x]=findd(a[x]);
}
2.压缩路径的函数:
void cover(int xx,int yy)
{
int pp,qq;
pp=findd(xx);
qq=findd(yy);
if(pp!=qq)
a[qq]=pp;
return ;
}
注:两个函数使用之前必须初始化为他自己的下标。