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