您的位置:首页 > 其它

并查集 模板

2011-07-29 10:49 197 查看
三个函数

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];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: