Loading...
Searching...
No Matches
ExtendFindEnum< IM > Class Template Reference
Data Structures » Auxiliary Data Structures

## 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
| Gives back the class of the item.
Item | item (int cls) const
| Gives back a representant item of the component.
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

## insert() [1/2]

template<typename IM>

int insert | ( | const Item & | item | ) |

inline

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

## insert() [2/2]

template<typename IM>

void insert | ( | const Item & | item,
|  | int | cls )

inline

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

## clear()

template<typename IM>

void clear | ( |  | ) |

inline

Erase each item from the data structure.

## find()

template<typename IM>

int find | ( | const Item & | item | ) | const

inline

Gives back the class of the item.

## item()

template<typename IM>

Item item | ( | int | cls | ) | const

inline

Gives back a representant item of the component.

## erase()

template<typename IM>

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.

## eraseClass()

template<typename IM>

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.