互いに素なセット(A)

主な機能:

  

INT検索(INT X){
     INT R&LT = X;
     ながら(R&LT =!プレ[R&LT])
        R&LT = プレ[R&LT]; 
} 

無効(参加int型、Xをint型Yの){
     int型 FX =検索(X)、FY = 検索(Y)、
     IF(!FX = FY)
        予め[FX] = FY; // としてFX FY子ノード
     {
          IF(== FX年度)// 等しい、リングを有するようにベース
     } 
        
}

私たちは、処理のために、親ノードの子ノードとの関係、加重互いに素セットは、多くの場合で使用されている解決することができるとき:(再帰再帰最適化のパス圧縮最適化)は、バック作り、各ノードに横断できます

データが大きすぎるときに使用することはできません。しかし、それはエラーをMLEます

INT見つける(INT X){
     場合(X == [X] PRE)
         リターンXと、
    {
         int型 K = あらかじめ[X]。
        [X]事前 = (予備[X])を見つけます。
        
        戻りFAを[X]。
    } 
}

非再帰的な圧縮パス

INT(検索INT X){
      INT R&LT = ; X
      一方(PRE [R&LT] =!{R&LT)
         R&LT = プレ[R&LT]; 
     } 
     int型 K = X、J、
      一方(!K = R&LT){ 
         Jは = あらかじめ[ J //現在のノードの親ノード保存と; K] 
         プレ[K] = //親ノード変更; R&LTを
         K = jで; 
     } 
     戻りK; 
}

 

おすすめ

転載: www.cnblogs.com/Accepting/p/11306241.html
おすすめ