27 using Rank = std::vector<Node>;
51 auto base_node = node;
54 auto parent_node =
_parent[node];
55 while (parent_node != node) {
59 auto root_node = parent_node;
63 while (root_node != node) {
73 std::sort(roots_list.begin(), roots_list.end());
74 roots_list.erase(std::unique(roots_list.begin(), roots_list.end()),
Definition algorithm.hpp:24
Definition union_find.hpp:24
Node find_set(Node node)
Definition union_find.hpp:50
std::vector< Node > Rank
Definition union_find.hpp:27
UnionFind(size_type n)
Definition union_find.hpp:30
Parent get_roots() const
Definition union_find.hpp:71
Parent::size_type size_type
Definition union_find.hpp:28
Rank _rank
Definition union_find.hpp:81
std::size_t Node
Definition union_find.hpp:25
Parent _parent
Definition union_find.hpp:80
std::vector< Node > Parent
Definition union_find.hpp:26
void unite_sets(Node x, Node y)
Definition union_find.hpp:34