lemon/concepts/graph.h
branch1.2
changeset 949 10271bbbb793
parent 786 e20173729589
child 983 8b2d4e5d96e4
equal deleted inserted replaced
14:a482cd69583f 15:7bc74477a81d
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
     2  *
     2  *
     3  * This file is a part of LEMON, a generic C++ optimization library.
     3  * This file is a part of LEMON, a generic C++ optimization library.
     4  *
     4  *
     5  * Copyright (C) 2003-2009
     5  * Copyright (C) 2003-2010
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     8  *
     8  *
     9  * Permission to use, modify and distribute this software is granted
     9  * Permission to use, modify and distribute this software is granted
    10  * provided that this copyright notice appears in all copies. For
    10  * provided that this copyright notice appears in all copies. For
    41     /// Like all concept classes, it only provides an interface
    41     /// Like all concept classes, it only provides an interface
    42     /// without any sensible implementation. So any general algorithm for
    42     /// without any sensible implementation. So any general algorithm for
    43     /// undirected graphs should compile with this class, but it will not
    43     /// undirected graphs should compile with this class, but it will not
    44     /// run properly, of course.
    44     /// run properly, of course.
    45     /// An actual graph implementation like \ref ListGraph or
    45     /// An actual graph implementation like \ref ListGraph or
    46     /// \ref SmartGraph may have additional functionality.    
    46     /// \ref SmartGraph may have additional functionality.
    47     ///
    47     ///
    48     /// The undirected graphs also fulfill the concept of \ref Digraph
    48     /// The undirected graphs also fulfill the concept of \ref Digraph
    49     /// "directed graphs", since each edge can also be regarded as two
    49     /// "directed graphs", since each edge can also be regarded as two
    50     /// oppositely directed arcs.
    50     /// oppositely directed arcs.
    51     /// Undirected graphs provide an Edge type for the undirected edges and
    51     /// Undirected graphs provide an Edge type for the undirected edges and
    83       Graph() {}
    83       Graph() {}
    84 
    84 
    85       /// \brief Undirected graphs should be tagged with \c UndirectedTag.
    85       /// \brief Undirected graphs should be tagged with \c UndirectedTag.
    86       ///
    86       ///
    87       /// Undirected graphs should be tagged with \c UndirectedTag.
    87       /// Undirected graphs should be tagged with \c UndirectedTag.
    88       /// 
    88       ///
    89       /// This tag helps the \c enable_if technics to make compile time
    89       /// This tag helps the \c enable_if technics to make compile time
    90       /// specializations for undirected graphs.
    90       /// specializations for undirected graphs.
    91       typedef True UndirectedTag;
    91       typedef True UndirectedTag;
    92 
    92 
    93       /// The node type of the graph
    93       /// The node type of the graph
   358         /// the arcs; this order has nothing to do with the iteration
   358         /// the arcs; this order has nothing to do with the iteration
   359         /// ordering of the arcs.
   359         /// ordering of the arcs.
   360         bool operator<(Arc) const { return false; }
   360         bool operator<(Arc) const { return false; }
   361 
   361 
   362         /// Converison to \c Edge
   362         /// Converison to \c Edge
   363         
   363 
   364         /// Converison to \c Edge.
   364         /// Converison to \c Edge.
   365         ///
   365         ///
   366         operator Edge() const { return Edge(); }
   366         operator Edge() const { return Edge(); }
   367       };
   367       };
   368 
   368