private static List < Set < Integer > > createFinalAggregates ( List < Set < Integer > > C , List < Set < Integer > > N , boolean [ ] R ) { for ( int i = 0 ; i < R . length ; ++ i ) { // Skip non-free nodes if ( ! R [ i ] ) continue ; // Create new aggregate from the nodes in N[i] which are free Set < Integer > Cn = new HashSet < Integer > ( ) ; for ( int j : N . get ( i ) ) if ( R [ j ] ) { R [ j ] = false ; Cn . add ( j ) ; } if ( ! Cn . isEmpty ( ) ) C . add ( Cn ) ; } return C ; }
Creates final aggregates from the remaining unallocated nodes