노드를 합치고 부모 노드를 찾음
초기값
parent[] 에 자기 자신을 넣어줌
Ex) parent[1]=1;
부모 찾기
int find(int x){
if(x==parent[x])return x
else {
int p = find(parent[x]);
parent[x]=p;
return p;
}
}
parent 값에 연결된 노드를 입력함 1 - 2 - 3 이 연결되어 있을때 parent[3] 은 1이됨 ( 연결된 노드중 가장 작은 값을 넣음)
합치기
void union(int x,int y){
x=find(x);
y=find(y);
if(x>y)parent[x]=y;
else parent[y]=x;
}
}