编辑代码

#include <iostream>
using namespace std;


/*
m:数组
a:位置
完成对这个位置的合并
*/
int bc(int m[],int a)
{
    int s=a;
    while(m[a]!=a)
    {
        a=m[a];
    }
    m[s]=a;
    return a;
}

/*
m:数组
n:数组大小
调用bc完成对整个数组的并查
*/
void find_disjoint_sets(int a[],int n)
{
    for(int i=0;i<n;i++)
        int s=bc(a,i);
}

int judge(int a[],int x,int y)
{
    if ( bc(a,x)==bc(a,y) )
    return 1;

    return 0;
}




int main() {
    int a[11]={2,1,2,6,2,5,7,2,5,7,9};

    find_disjoint_sets(a,sizeof(a)/sizeof(int));

    for(int i=0;i<11;i++)
    {
        cout<<a[i]<<' ';
    }

    cout<<'\n'<<judge(a,0,10);


	return 0;
}