Arc
and Edge
types of the graph.
For example, if the given graph has an Euler tour (i.e it has only one non-trivial component and the degree of each node is even), the following code will print the arc IDs according to an Euler tour of g
.
for(EulerIt<ListGraph> e(g); e!=INVALID; ++e) { std::cout << g.id(Edge(e)) << std::eol; }
If g
has no Euler tour, then the resulted walk will not be closed or not contain all edges. #include <lemon/euler.h>
Public Member Functions | |
EulerIt (const GR &gr, typename GR::Node start=INVALID) | |
Constructor. | |
operator Arc () const | |
Arc conversion. | |
operator Edge () const | |
Edge conversion. | |
bool | operator== (Invalid) const |
Compare with INVALID . | |
bool | operator!= (Invalid) const |
Compare with INVALID . | |
EulerIt & | operator++ () |
Next arc of the tour. | |
Arc | operator++ (int) |
Postfix incrementation. |
Constructor.
gr | A graph. | |
start | The starting point of the tour. If it is not given, the tour will start from the first node that has an incident edge. |
EulerIt& operator++ | ( | ) | [inline] |
Next arc of the tour
Arc operator++ | ( | int | ) | [inline] |
Postfix incrementation.
Arc
(which converts to an Edge
), not an EulerIt, as one may expect.