lemon/euler.h
changeset 593 e8349c6f12ca
parent 505 3af83b6be1df
child 550 c5fd2d996909
equal deleted inserted replaced
1:060a430f5f85 2:8a6da54f2a10
    52   ///  for(DiEulerIt<ListDigraph> e(g),e!=INVALID;++e)
    52   ///  for(DiEulerIt<ListDigraph> e(g),e!=INVALID;++e)
    53   ///    et.push_back(e);
    53   ///    et.push_back(e);
    54   ///\endcode
    54   ///\endcode
    55   ///If \c g is not Euler then the resulted tour will not be full or closed.
    55   ///If \c g is not Euler then the resulted tour will not be full or closed.
    56   ///\sa EulerIt
    56   ///\sa EulerIt
    57   ///\todo Test required
       
    58   template<class Digraph>
    57   template<class Digraph>
    59   class DiEulerIt
    58   class DiEulerIt
    60   {
    59   {
    61     typedef typename Digraph::Node Node;
    60     typedef typename Digraph::Node Node;
    62     typedef typename Digraph::NodeIt NodeIt;
    61     typedef typename Digraph::NodeIt NodeIt;
   144   ///it still returns Arcs in order to indicate the direction of the tour.
   143   ///it still returns Arcs in order to indicate the direction of the tour.
   145   ///(But Arc will convert to Edges, of course).
   144   ///(But Arc will convert to Edges, of course).
   146   ///
   145   ///
   147   ///If \c g is not Euler then the resulted tour will not be full or closed.
   146   ///If \c g is not Euler then the resulted tour will not be full or closed.
   148   ///\sa EulerIt
   147   ///\sa EulerIt
   149   ///\todo Test required
       
   150   template<class Digraph>
   148   template<class Digraph>
   151   class EulerIt
   149   class EulerIt
   152   {
   150   {
   153     typedef typename Digraph::Node Node;
   151     typedef typename Digraph::Node Node;
   154     typedef typename Digraph::NodeIt NodeIt;
   152     typedef typename Digraph::NodeIt NodeIt;
   238   ///arcs are the same for each node.
   236   ///arcs are the same for each node.
   239   ///Similarly, an undirected graph is called \e Eulerian if
   237   ///Similarly, an undirected graph is called \e Eulerian if
   240   ///and only if it is connected and the number of incident arcs is even
   238   ///and only if it is connected and the number of incident arcs is even
   241   ///for each node. <em>Therefore, there are digraphs which are not Eulerian,
   239   ///for each node. <em>Therefore, there are digraphs which are not Eulerian,
   242   ///but still have an Euler tour</em>.
   240   ///but still have an Euler tour</em>.
   243   ///\todo Test required
       
   244   template<class Digraph>
   241   template<class Digraph>
   245 #ifdef DOXYGEN
   242 #ifdef DOXYGEN
   246   bool
   243   bool
   247 #else
   244 #else
   248   typename enable_if<UndirectedTagIndicator<Digraph>,bool>::type
   245   typename enable_if<UndirectedTagIndicator<Digraph>,bool>::type