File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
src/main/java/com/thealgorithms/graph Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .thealgorithms .graph ;
2+
3+ public class DisjointSet {
4+ int [] parent ;
5+ int [] rank ;
6+ public DisjointSet (int n ){
7+ parent = new int [n ];
8+ rank = new int [n ];
9+ for (int i =0 ; i <n ; i ++){
10+ parent [i ] = i ;
11+ rank [i ] = 1 ;
12+ }
13+ }
14+
15+ int findLeader (int x ){
16+ if (parent [x ]==x ){
17+ return parent [x ];
18+ }
19+ int leader = findLeader (parent [x ]);
20+ parent [x ] = leader ;
21+ return leader ;
22+ }
23+
24+ boolean isSame (int x , int y ){
25+ return findLeader (x )==findLeader (y );
26+ }
27+
28+ void merge (int x , int y ){
29+ int xLeader = findLeader (x );
30+ int yLeader = findLeader (y );
31+ if (xLeader != yLeader ){
32+ if (rank [xLeader ]<rank [yLeader ]){
33+ parent [xLeader ] = yLeader ;
34+ }else {
35+ parent [yLeader ] = xLeader ;
36+ if (rank [xLeader ] == rank [yLeader ]){
37+ rank [xLeader ] += 1 ;
38+ }
39+ }
40+ }
41+ }
42+ }
You can’t perform that action at this time.
0 commit comments