Java c+中的自指结构+;寻找联合

Java c+中的自指结构+;寻找联合,java,c++,struct,union-find,Java,C++,Struct,Union Find,下面是union find的Java实现,我希望在C++中复制它: v级{ 国际地位、等级; v_级家长; 公共v_级(内部职位){ 这个位置=位置; 秩=0; parent=null; } } 静态v_秩查找(v_秩v){ 如果(v.parent==null) 返回v; v、 父项=查找(v.parent); 返还给父母; } 静态无效并集(v_秩根1,v_秩根2){ if(root1.rankroot2.rank) root2.parent=root1; 否则{ root2.parent=

下面是union find的Java实现,我希望在C++中复制它:


v级{
国际地位、等级;
v_级家长;
公共v_级(内部职位){
这个位置=位置;
秩=0;
parent=null;
}
}
静态v_秩查找(v_秩v){
如果(v.parent==null)
返回v;
v、 父项=查找(v.parent);
返还给父母;
}
静态无效并集(v_秩根1,v_秩根2){
if(root1.rankroot2.rank)
root2.parent=root1;
否则{
root2.parent=root1;
root1.rank++;
}
}
我为C++所做的尝试:

struct vert{
int pos,秩;
Valt*Par;
垂直(内部位置){
这个->位置=位置;
秩=0;
PAR=NULL;
}
};
垂直查找(垂直v){
如果(V.PA= =空)
返回v;
*(v.par)=查找(*(v.par));
回报*(v.par);
}
与具有这种实现的java不同,我无法将2VERT与简单的“==”进行比较。 我需要做一对两个这样的顶点,然后是所有这对顶点(边)的向量。 我对此也有意见


有人能建议一种在cpp中复制java代码的方法,这样我就可以检查两个“顶点”的相等性,并使用一对“顶点”的向量吗?

为什么要检查两个“顶点”的相等性?你说的一对“顶点”向量是什么意思?你能详细说明一下吗?@Maaddy如果两个“顶点”属于同一组,则必须进行联合。因此,我必须检查根“verts”的相等性。这些“顶点”(顶点)需要配对以形成边,我需要一个所有这些边的列表,从而得到一个“顶点”对向量。即使在Java中,你也不能用一个简单的“==”来比较两个对象。我仍然不明白你这里的问题是什么,你是否坚持使用union方法的实现?你为什么想要边缘?边在联合查找结构中是无用的,重要的数据是联合查找林中每棵树的父树。你能解释一下到底哪里出了问题,我可以帮你吗?@Maaddy我可以给你发电子邮件吗?是的:)你可以。在linkedin上以“Mahdy Berriri”的名义寻找我,并给我留言,我会在那里给你发电子邮件:)