ListEdgeSet< GR > Class Template Reference

- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Public Member Functions
ListEdgeSet< GR > Class Template Reference
Graph Structures

## Detailed Description

### template<typename GR>
class lemon::ListEdgeSet< GR >

This structure can be used to establish another graph over a node set of an existing one. This class uses the same Node type as the underlying graph, and each valid node of the original graph is valid in this arc set, therefore the node objects of the original graph can be used directly with this class. The node handling functions (id handling, observing, and iterators) works equivalently as in the original graph.

This implementation is based on doubly-linked lists, from each node the incident edges make up lists, therefore one edge can be erased in constant time. It also makes possible, that node can be removed from the underlying graph, in this case all edges incident to the given node is erased from the arc set.

This class fully conforms to the Graph concept. It provides only linear time counting for nodes, edges and arcs.

Parameters

  GR | The type of the graph which shares its node set with this class. Its interface must conform to the Digraph or Graph concept.

`#include <lemon/edge_set.h>`

Inherits EdgeSetExtender< Base >.

## Public Member Functions
| ListEdgeSet (const GR &graph)
| Constructor of the EdgeSet. More...
Edge | addEdge (const Node &u, const Node &v)
| Add a new edge to the graph. More...
void | erase (const Edge &e)
| Erase an edge from the graph. More...

## Constructor & Destructor Documentation

ListEdgeSet | ( | const GR & | graph | ) |
| inline

Constructor of the EdgeSet.

## Member Function Documentation

Edge addEdge | ( | const Node & | u,
|  | const Node & | v
| ) |  |
| inline

Add a new edge to the graph with node `u` and node `v` endpoints.

Returns
  The new edge.

void erase | ( | const Edge & | e | ) |
| inline

Erase the edge `e` from the graph.