# HG changeset patch # User klao # Date 1142014657 0 # Node ID b8f10207e3d603f310589f6fc753f4f4038b881a # Parent cf012a7c7f695f6ef06f7239128271af83fc84bc UnionFindEnum: one remaining bug; removing commented out code diff -r cf012a7c7f69 -r b8f10207e3d6 lemon/unionfind.h --- a/lemon/unionfind.h Fri Mar 10 18:06:26 2006 +0000 +++ b/lemon/unionfind.h Fri Mar 10 18:17:37 2006 +0000 @@ -300,7 +300,7 @@ IIter clit = _find(m[comp]); ItemList &c = *clit->my_class; - c.push_back(ItemType(a,0)); + c.push_back(ItemType(a,CIter())); IIter ai = c.end(); --ai; ai->parent = clit; @@ -347,7 +347,6 @@ alist.splice(alist.end(),*cb->my_class); classes.erase(cb->my_class); - // ehem: cb->my_class = 0; } else { @@ -358,7 +357,6 @@ blist.splice(blist.end(),*ca->my_class); classes.erase(ca->my_class); - // ehem: ca->my_class = 0; } return true; @@ -420,7 +418,6 @@ if (la == ia) return; ia->my_class = la->my_class; - // ehem: la->my_class = 0; ia->size = la->size; @@ -478,7 +475,6 @@ } ai->parent = clit; - // ehem: ai->my_class = 0; ++clit->size; return true; @@ -496,13 +492,11 @@ void erase(const T &a) { IIter ma = m[a]; - // ehem: if (ma == 0) return; IIter la = _find(ma); if (la == ma) { if (ma -> size == 1){ classes.erase(ma->my_class); - // ehem: m.set(a,0); return; } ++la; @@ -516,7 +510,6 @@ la->size--; la->my_class->erase(ma); - // ehem: m.set(a,0); } /** @@ -529,12 +522,6 @@ void eraseClass(const T &a) { IIter ma = m[a]; - // ehem: if (ma == 0) return; -// # ifdef DEBUG -// CIter c = _find(ma)->my_class; -// for (IIter i=c->begin(); i!=c->end(); ++i) -// m.set(i->me, 0); -// # endif classes.erase(_find(ma)->my_class); } @@ -581,16 +568,6 @@ // obsoleted: bool valid() const { return l!=0 && i!=l->end(); } - private: - //void first(const ClassList &l) { i = l.begin(); validate(l); } -// void next(const ClassList &l) { -// ++i; -// validate(l); -// } -// void validate(const ClassList &l) { -// if ( i == l.end() ) -// i = 0; -// } }; /** @@ -661,13 +638,13 @@ } operator const T& () const { return i->me; } - bool operator == (ItemIt it) const { + bool operator == (ItemIt const &it) const { return (l==it.l && i==it.i) || (!valid() && !it.valid()); } - bool operator != (ItemIt it) const { + bool operator != (ItemIt const &it) const { return !(*this == it); } - bool operator < (ItemIt it) const { + bool operator < (ItemIt const &it) const { return (i < it.i); } @@ -685,16 +662,6 @@ // obsoleted: bool valid() const { return l!=0 && i!=l->end(); } - private: -// void first(const ItemList &il) { l=&il; i = l->begin(); validate(); } -// void next() { -// ++i; -// validate(); -// } -// void validate() { -// if ( i == l->end() ) -// i = 0; -// } };