equal
deleted
inserted
replaced
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 |