主な機能:
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; }