并查集我知不道

#include <iostream>
using namespace std;
int set[10];
int find(int x)//找x的祖先 
{
    if(set[x]==x)
        return x;
    return set[x]=find(set[x]);//把x的各个祖先的双亲都置最久远的祖先 
}
void dispSet(int n)
{
    for(int i=0; i<n; i++ )
        cout<<set[i]<<'\t';
    cout<<endl;
}
int main()
{
    int n=10,x,y,anx,any;
    for(int i=0; i<n; i++)
        set[i]=i;
    dispSet(n);
    while(cin>>x>>y) {

        anx=find(x);
        any=find(y);
        set[anx]=any;//x,y祖先之间建立起关系,让祖先唯一 
        cout<<"x's ancestor is "<<find(x)<<endl;
        cout<<"y's ancestor is "<<find(y)<<endl;
        dispSet(n);
    } 
}

 

上一篇:vue 3.x 定义全局变量&使用


下一篇:Vue+TS 开发 海康威视 Web3.0控件