Changeset 2004:b8f10207e3d6 in lemon-0.x
- Timestamp:
- 03/10/06 19:17:37 (17 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2616
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/unionfind.h
r2003 r2004 301 301 IIter clit = _find(m[comp]); 302 302 ItemList &c = *clit->my_class; 303 c.push_back(ItemType(a, 0));303 c.push_back(ItemType(a,CIter())); 304 304 IIter ai = c.end(); 305 305 --ai; … … 348 348 349 349 classes.erase(cb->my_class); 350 // ehem: cb->my_class = 0;351 350 } 352 351 else { … … 359 358 360 359 classes.erase(ca->my_class); 361 // ehem: ca->my_class = 0;362 360 } 363 361 … … 421 419 422 420 ia->my_class = la->my_class; 423 // ehem: la->my_class = 0;424 421 425 422 ia->size = la->size; … … 479 476 480 477 ai->parent = clit; 481 // ehem: ai->my_class = 0;482 478 ++clit->size; 483 479 … … 497 493 498 494 IIter ma = m[a]; 499 // ehem: if (ma == 0) return;500 495 501 496 IIter la = _find(ma); … … 503 498 if (ma -> size == 1){ 504 499 classes.erase(ma->my_class); 505 // ehem: m.set(a,0);506 500 return; 507 501 } … … 517 511 la->size--; 518 512 la->my_class->erase(ma); 519 // ehem: m.set(a,0);520 513 } 521 514 … … 530 523 void eraseClass(const T &a) { 531 524 IIter ma = m[a]; 532 // ehem: if (ma == 0) return;533 // # ifdef DEBUG534 // CIter c = _find(ma)->my_class;535 // for (IIter i=c->begin(); i!=c->end(); ++i)536 // m.set(i->me, 0);537 // # endif538 525 classes.erase(_find(ma)->my_class); 539 526 } … … 582 569 // obsoleted: 583 570 bool valid() const { return l!=0 && i!=l->end(); } 584 private:585 //void first(const ClassList &l) { i = l.begin(); validate(l); }586 // void next(const ClassList &l) {587 // ++i;588 // validate(l);589 // }590 // void validate(const ClassList &l) {591 // if ( i == l.end() )592 // i = 0;593 // }594 571 }; 595 572 … … 662 639 663 640 operator const T& () const { return i->me; } 664 bool operator == (ItemIt it) const {641 bool operator == (ItemIt const &it) const { 665 642 return (l==it.l && i==it.i) || (!valid() && !it.valid()); 666 643 } 667 bool operator != (ItemIt it) const {644 bool operator != (ItemIt const &it) const { 668 645 return !(*this == it); 669 646 } 670 bool operator < (ItemIt it) const {647 bool operator < (ItemIt const &it) const { 671 648 return (i < it.i); 672 649 } … … 686 663 // obsoleted: 687 664 bool valid() const { return l!=0 && i!=l->end(); } 688 private:689 // void first(const ItemList &il) { l=&il; i = l->begin(); validate(); }690 // void next() {691 // ++i;692 // validate();693 // }694 // void validate() {695 // if ( i == l->end() )696 // i = 0;697 // }698 665 }; 699 666
Note: See TracChangeset
for help on using the changeset viewer.