Algorithm 및 집합 경로 압축 (재 귀 와 비 재 귀)

491 단어 ACM데이터 구조
이곳 의 사고방식 은 매번 아버지의 노드 를 찾 을 때 우 리 는 모든 아이의 아버 지 를 그의 조상 으로 바 꾸 는 것 이다.한 아이의 관계 가 복잡 할 수도 있 고 체인 일 수도 있 기 때문에 찾 는 데 시간 을 낭비 하지 않 는 다.
이것 은 간단 한 실현 이다.
find (int x)
{
 while(x!=father[x])
  father[x] = find(father[x]) ;
 return father[x] ;
}

//      

find (int x)
{
 int r = x ;
 while(r != father[r])//  r     
  r = father[r] ;
 int k = x ;

 while(k!father[k])
 {
  
   father[k] = r ;
   k = father[x] ;
   x = k ;
 
 } 
}

좋은 웹페이지 즐겨찾기