26 assert(NumClasses == 0 &&
"grow() called after compress().");
33 assert(NumClasses == 0 &&
"join() called after compress().");
41 EC[b] = eca, b = ecb, ecb = EC[b];
43 EC[a] = ecb, a = eca, eca = EC[a];
47 assert(NumClasses == 0 &&
"findLeader() called after compress().");
56 for (
unsigned i = 0, e = EC.
size(); i != e; ++i)
57 EC[i] = (EC[i] == i) ? NumClasses++ : EC[EC[i]];
64 for (
unsigned i = 0, e = EC.
size(); i != e; ++i)
65 if (EC[i] < Leader.
size())
66 EC[i] = Leader[EC[i]];
void push_back(const T &Elt)
void join(unsigned a, unsigned b)
unsigned findLeader(unsigned a) const