Loading...
Searching...
No Matches
DiEulerIt< GR > Class Template Reference
Algorithms » Connectivity and Other Graph Properties

## Detailed Description

template<typename GR>
class lemon::DiEulerIt< GR >

This iterator provides an Euler tour (Eulerian circuit) of a directed graph (if there exists) and it converts to the `Arc` type of the digraph.

For example, if the given digraph has an Euler tour (i.e it has only one non-trivial component and the in-degree is equal to the out-degree for all nodes), then the following code will put the arcs of `g` to the vector `et` according to an Euler tour of `g`.

std::vector<ListDigraph::Arc> et;
for(DiEulerIt<ListDigraph> e(g); e!=INVALID; ++e)
et.push_back(e);
lemon::INVALID
const Invalid INVALID
Invalid iterators.
Definition base.cc:32
lemon::DiEulerIt::DiEulerIt
DiEulerIt(const GR &gr, typename GR::Node start=INVALID)
Constructor.
Definition euler.h:77

If `g` has no Euler tour, then the resulted walk will not be closed or not contain all arcs.

See also
  EulerIt

`#include <lemon/euler.h>`

## Public Member Functions

| DiEulerIt (const GR &gr, typename GR::Node start=INVALID)
| Constructor.
| operator Arc ()
| Arc conversion.
bool | operator== (Invalid)
| Compare with `INVALID`.
bool | operator!= (Invalid)
| Compare with `INVALID`.
DiEulerIt & | operator++ ()
| Next arc of the tour.
Arc | operator++ (int)
| Postfix incrementation.

## Constructor & Destructor Documentation

## DiEulerIt()

template<typename GR>

DiEulerIt | ( | const GR & | gr,
|  | typename GR::Node | start = INVALID )

inline

Constructor.

Parameters

  gr | A digraph.
  start | The starting point of the tour. If it is not given, the tour will start from the first node that has an outgoing arc.

## Member Function Documentation

## operator++() [1/2]

template<typename GR>

DiEulerIt & operator++ | ( |  | ) |

inline

Next arc of the tour

## operator++() [2/2]

template<typename GR>

Arc operator++ | ( | int |  | ) |

inline

Postfix incrementation.

Warning
  This incrementation returns an `Arc`, not a DiEulerIt, as one may expect.