跪求大牛用C++实现并查集的三个常用基本操作!!!急求!!!

要求包含以下3个操作:(1)构造操作:将集合中的每一个元素初始为一个独立的不相交集合(等价类);(2)合并操作:把属于不同集合的两个元素各自所属的集合合并;(3)查找操作... 要求包含以下3个操作:(1) 构造操作:将集合中的每一个元素初始为一个独立的不相交集合(等价类);(2) 合并操作:把属于不同集合的两个元素各自所属的集合合并;(3) 查找操作:找出元素属于哪个子集。常用来确定两个元素是否属于同一子集。 展开
 我来答
Brooding
2019-05-03 · TA获得超过488个赞
知道小有建树答主
回答量:148
采纳率:50%
帮助的人:20.2万
展开全部
int father[10005];//存父节点 

void initialize(int n)
{
for(int i=1;i<=n;i++)
{
father[i]=i//初始化,所有节点的父节点指向自己 
}
}

int get(int x)//返回根节点 
{
if(x==father[x])//根节点的父节点为自身 
{
return x;//返回 
}
return father[x]=get(father[x]);//否则把向上寻找根节点途中遇到的所有节点,的父节点指向更高一级 
}

void merge(int x,int y)
{
father[get(x)]=get(y);//合并,等价于让x的根节点作为y根节点的子节点 
}
追问
能加多一个main函数吗,看一下怎么实现的,谢谢
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式