86 /// \ref lemon::concepts::UGraph "undirected graph", be sure that the |
85 /// \ref lemon::concepts::UGraph "undirected graph", be sure that the |
87 /// map storing the tree is also undirected |
86 /// map storing the tree is also undirected |
88 /// (e.g. ListUGraph::UEdgeMap<bool>, otherwise the values of the |
87 /// (e.g. ListUGraph::UEdgeMap<bool>, otherwise the values of the |
89 /// half of the edges will not be set. |
88 /// half of the edges will not be set. |
90 /// |
89 /// |
91 /// \todo Discuss the case of undirected graphs: In this case the algorithm |
|
92 /// also require <tt>Edge</tt>s instead of <tt>UEdge</tt>s, as some |
|
93 /// people would expect. So, one should be careful not to add both of the |
|
94 /// <tt>Edge</tt>s belonging to a certain <tt>UEdge</tt>. |
|
95 /// (\ref kruskal() and \ref KruskalMapInput are kind enough to do so.) |
|
96 |
90 |
97 #ifdef DOXYGEN |
91 #ifdef DOXYGEN |
98 template <class GR, class IN, class OUT> |
92 template <class GR, class IN, class OUT> |
99 typename IN::value_type::second_type |
93 CostType |
100 kruskal(GR const& g, IN const& in, |
94 kruskal(GR const& g, IN const& in, |
101 OUT& out) |
95 OUT& out) |
102 #else |
96 #else |
103 template <class GR, class IN, class OUT> |
97 template <class GR, class IN, class OUT> |
104 typename IN::value_type::second_type |
98 typename IN::value_type::second_type |