new data-struct disjoint-set