find 구현 코드에서 


int find(int x)

{

if (p[x] < 0) return x;

return p[x] = find(p[x]); << 이 부분

}


생각해보니까
return find(p[x]);
를 써도 되는데 어차피 find 함수가 x가 속한 집합의 제일 상단 노드가 일치하는지 알아보려고 찾는 거니까 
미리 p[x]에 업데이트 해둬서 다음 find때 찾는 시간 줄이려는 용도인가요?