All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions
ExtendFindEnum< IM > Class Template Reference

Detailed Description

template<typename IM>
class lemon::ExtendFindEnum< IM >

The class implements an Extend-Find data structure which is able to enumerate the components and the items in a component. The data structure is a simplification of the Union-Find structure, and it does not allow to merge two components.

Precondition
You need to add all the elements by the insert() method.

#include <lemon/unionfind.h>

Classes

class  ClassIt
 LEMON style iterator for the classes. More...
 
class  ItemIt
 LEMON style iterator for the items of a component. More...
 

Public Types

typedef IM ItemIntMap
 
 
typedef ItemIntMap::Key Item
 
 

Public Member Functions

 ExtendFindEnum (ItemIntMap &_index)
 Constructor.
 
int insert (const Item &item)
 Inserts the given element into a new component.
 
void insert (const Item &item, int cls)
 Inserts the given element into the given component.
 
void clear ()
 Clears the union-find data structure.
 
int find (const Item &item) const
 
Item item (int cls) const
 
void erase (const Item &item)
 Removes the given element from the structure.
 
void eraseClass (int cdx)
 Removes the component of the given element from the structure.
 

Member Function Documentation

int insert ( const Item item)
inline

This method creates a new component consisting only of the given element.

void insert ( const Item item,
int  cls 
)
inline

This methods inserts the element item a into the cls class.

void clear ( )
inline

Erase each item from the data structure.

int find ( const Item item) const
inline

Gives back the class of the item.

Item item ( int  cls) const
inline

Gives back a representant item of the component.

void erase ( const Item item)
inline

Removes the element from its component and if the component becomes empty then removes that component from the component list.

Warning
It is an error to remove an element which is not in the structure.
void eraseClass ( int  cdx)
inline

Removes the component of the given element from the structure.

Warning
It is an error to give an element which is not in the structure.