src/lemon/list_graph.h
changeset 934 003736604835
parent 919 6153d9cf78c6
child 937 d4e911acef3d
equal deleted inserted replaced
28:e84b9d55a7b3 0:98552d91b82e
     1 /* -*- C++ -*-
     1 /* -*- C++ -*-
     2  * src/hugo/list_graph.h - Part of HUGOlib, a generic C++ optimization library
     2  * src/lemon/list_graph.h - Part of LEMON, a generic C++ optimization library
     3  *
     3  *
     4  * Copyright (C) 2004 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     4  * Copyright (C) 2004 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     5  * (Egervary Combinatorial Optimization Research Group, EGRES).
     5  * (Egervary Combinatorial Optimization Research Group, EGRES).
     6  *
     6  *
     7  * Permission to use, modify and distribute this software is granted
     7  * Permission to use, modify and distribute this software is granted
    12  * express or implied, and with no claim as to its suitability for any
    12  * express or implied, and with no claim as to its suitability for any
    13  * purpose.
    13  * purpose.
    14  *
    14  *
    15  */
    15  */
    16 
    16 
    17 #ifndef HUGO_LIST_GRAPH_H
    17 #ifndef LEMON_LIST_GRAPH_H
    18 #define HUGO_LIST_GRAPH_H
    18 #define LEMON_LIST_GRAPH_H
    19 
    19 
    20 ///\ingroup graphs
    20 ///\ingroup graphs
    21 ///\file
    21 ///\file
    22 ///\brief ListGraph, SymListGraph, NodeSet and EdgeSet classes.
    22 ///\brief ListGraph, SymListGraph, NodeSet and EdgeSet classes.
    23 
    23 
    24 #include <vector>
    24 #include <vector>
    25 #include <climits>
    25 #include <climits>
    26 
    26 
    27 #include <hugo/invalid.h>
    27 #include <lemon/invalid.h>
    28 
    28 
    29 #include <hugo/map_registry.h>
    29 #include <lemon/map_registry.h>
    30 #include <hugo/array_map.h>
    30 #include <lemon/array_map.h>
    31 
    31 
    32 #include <hugo/sym_map.h>
    32 #include <lemon/sym_map.h>
    33 
    33 
    34 #include <hugo/map_defines.h>
    34 #include <lemon/map_defines.h>
    35 
    35 
    36 
    36 
    37 namespace hugo {
    37 namespace lemon {
    38 
    38 
    39 /// \addtogroup graphs
    39 /// \addtogroup graphs
    40 /// @{
    40 /// @{
    41 
    41 
    42   ///A list graph class.
    42   ///A list graph class.
   421 
   421 
   422   ///The purpose of this graph structure is to handle graphs
   422   ///The purpose of this graph structure is to handle graphs
   423   ///having bidirectional edges. Here the function \c addEdge(u,v) adds a pair
   423   ///having bidirectional edges. Here the function \c addEdge(u,v) adds a pair
   424   ///of oppositely directed edges.
   424   ///of oppositely directed edges.
   425   ///There is a new edge map type called
   425   ///There is a new edge map type called
   426   ///\ref hugo::SymListGraph::SymEdgeMap "SymEdgeMap"
   426   ///\ref lemon::SymListGraph::SymEdgeMap "SymEdgeMap"
   427   ///that complements this
   427   ///that complements this
   428   ///feature by
   428   ///feature by
   429   ///storing shared values for the edge pairs. The usual
   429   ///storing shared values for the edge pairs. The usual
   430   ///\ref hugo::skeleton::StaticGraph::EdgeMap "EdgeMap"
   430   ///\ref lemon::skeleton::StaticGraph::EdgeMap "EdgeMap"
   431   ///can be used
   431   ///can be used
   432   ///as well.
   432   ///as well.
   433   ///
   433   ///
   434   ///The oppositely directed edge can also be obtained easily
   434   ///The oppositely directed edge can also be obtained easily
   435   ///using \ref hugo::SymListGraph::opposite() "opposite()" member function.
   435   ///using \ref lemon::SymListGraph::opposite() "opposite()" member function.
   436   ///
   436   ///
   437   ///Here erase(Edge) deletes a pair of edges.
   437   ///Here erase(Edge) deletes a pair of edges.
   438   ///
   438   ///
   439   ///\todo this date structure need some reconsiderations. Maybe it
   439   ///\todo this date structure need some reconsiderations. Maybe it
   440   ///should be implemented independently from ListGraph.
   440   ///should be implemented independently from ListGraph.
  1099   template<typename GG>
  1099   template<typename GG>
  1100   inline int EdgeSet<GG>::id(Node v) const { return G.id(v); }
  1100   inline int EdgeSet<GG>::id(Node v) const { return G.id(v); }
  1101 
  1101 
  1102 /// @}  
  1102 /// @}  
  1103 
  1103 
  1104 } //namespace hugo
  1104 } //namespace lemon
  1105 
  1105 
  1106 #endif //HUGO_LIST_GRAPH_H
  1106 #endif //LEMON_LIST_GRAPH_H