lemon/kruskal.h
changeset 2360 72c7075ad5ba
parent 2308 cddae1c4fee6
child 2386 81b47fc5c444
equal deleted inserted replaced
22:c6f938406dcb 23:42a8c9d1a522
    29 ///\file
    29 ///\file
    30 ///\brief Kruskal's algorithm to compute a minimum cost tree
    30 ///\brief Kruskal's algorithm to compute a minimum cost tree
    31 ///
    31 ///
    32 ///Kruskal's algorithm to compute a minimum cost tree.
    32 ///Kruskal's algorithm to compute a minimum cost tree.
    33 ///
    33 ///
    34 ///\todo The file still needs some clean-up.
       
    35 
    34 
    36 namespace lemon {
    35 namespace lemon {
    37 
    36 
    38   /// \addtogroup spantree
    37   /// \addtogroup spantree
    39   /// @{
    38   /// @{
    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