Changeset 242:b255f25ad394 in lemon-0.x for src/work
- Timestamp:
- 03/24/04 14:06:06 (21 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@341
- Location:
- src/work
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/alpar/dijkstra/bin_heap.hh
r224 r242 59 59 #ifndef BIN_HEAP_HH 60 60 #define BIN_HEAP_HH 61 62 ///\file 63 ///\brief Binary Heap implementation. 61 64 62 65 #include <vector> -
src/work/alpar/dijkstra/dijkstra.h
r229 r242 1 1 // -*- C++ -*- 2 2 3 /* 3 4 *template <Graph, T, Heap=FibHeap, LengthMap=Graph::EdgeMap<T> > … … 26 27 #ifndef HUGO_DIJKSTRA_H 27 28 #define HUGO_DIJKSTRA_H 29 30 ///\file 31 ///\brief Dijkstra algorithm. 28 32 29 33 #include <fib_heap.h> … … 44 48 ///The type of the length is determined by the \c ValueType of the length map. 45 49 /// 46 ///It is also pos ible to change the underlying priority heap.50 ///It is also possible to change the underlying priority heap. 47 51 /// 48 52 ///\param Graph The graph type the algorithm runs on. 49 ///\param LengthMap This read-only EdgeMap determines the 53 ///\param LengthMap This read-only 54 ///EdgeMap 55 ///determines the 50 56 ///lengths of the edges. It is read once for each edge, so the map 51 57 ///may involve in relatively time consuming process to compute the edge 52 ///length if it is necessary. 58 ///length if it is necessary. The default map type is 59 ///\ref GraphSkeleton::EdgeMap "Graph::EdgeMap<int>" 53 60 ///\param Heap The heap type used by the %Dijkstra 54 61 ///algorithm. The default 55 62 ///is using \ref BinHeap "binary heap". 63 64 #ifdef DOXYGEN 65 template <typename Graph, 66 typename LengthMap, 67 typename Heap> 68 #else 56 69 template <typename Graph, 57 70 typename LengthMap=typename Graph::EdgeMap<int>, … … 59 72 typename LengthMap::ValueType, 60 73 typename Graph::NodeMap<int> > > 74 #endif 61 75 class Dijkstra{ 62 76 public: … … 136 150 // bool reached(Node v) { return reach[v]; } 137 151 138 ///Chec hs if a node is reachable from the source.152 ///Checks if a node is reachable from the source. 139 153 140 154 ///Returns \c true if \c v is reachable from the source. -
src/work/alpar/dijkstra/fib_heap.h
r224 r242 52 52 #define FIB_HEAP_H 53 53 54 ///\file 55 ///\brief Fibonacci Heap implementation. 56 54 57 #include <vector> 55 58 #include <functional> … … 74 77 75 78 ///\todo It is use nowhere 76 ///\todo It doesn't conform sto the naming conventions.79 ///\todo It doesn't conform to the naming conventions. 77 80 public: 78 81 enum state_enum { -
src/work/alpar/emptygraph.h
r216 r242 3 3 #define HUGO_EMPTYGRAPH_H 4 4 5 ///\file 6 ///\brief Declaration of GraphSkeleton. 7 5 8 #include <invalid.h> 6 9 … … 13 16 /// An empty graph class. 14 17 15 /// When you read this for the first time,16 /// please send an e-mail to alpar\@cs.elte.hu.17 ///18 18 /// This class provides all the common features of a graph structure, 19 19 /// however completely without implementations and real data structures … … 103 103 }; 104 104 105 /// This iterator goes trough tthe outgoing edges of a node.106 107 /// This iterator goes trough tthe \e outgoing edges of a certain node105 /// This iterator goes trough the outgoing edges of a node. 106 107 /// This iterator goes trough the \e outgoing edges of a certain node 108 108 /// of a graph. 109 109 /// Its usage is quite simple, for example you can count the number … … 131 131 }; 132 132 133 /// This iterator goes trough tthe incoming edges of a node.134 135 /// This iterator goes trough tthe \e incoming edges of a certain node133 /// This iterator goes trough the incoming edges of a node. 134 135 /// This iterator goes trough the \e incoming edges of a certain node 136 136 /// of a graph. 137 137 /// Its usage is quite simple, for example you can count the number … … 179 179 NodeIt &first(NodeIt &i) const { return i;} 180 180 181 /// The first incoming edge. 182 InEdgeIt &first(InEdgeIt &i, Node n) const { return i;} 181 183 /// The first outgoing edge. 182 InEdgeIt &first(InEdgeIt &i, Node n) const { return i;}183 /// The first incoming edge.184 184 OutEdgeIt &first(OutEdgeIt &i, Node n) const { return i;} 185 185 // SymEdgeIt &first(SymEdgeIt &, Node) const { return i;} … … 229 229 ///Gives back the \e id of a node. 230 230 231 ///\warning Not all graph structure provide this feature.231 ///\warning Not all graph structures provide this feature. 232 232 /// 233 233 int id(const Node) const { return 0;} 234 234 ///Gives back the \e id of an edge. 235 235 236 ///\warning Not all graph structure provide this feature.236 ///\warning Not all graph structures provide this feature. 237 237 /// 238 238 int id(const Edge) const { return 0;} … … 253 253 Edge addEdge(Node tail, Node head) { return INVALID;} 254 254 255 /// Deletes a node. 256 257 ///\warning Not all graph structure provide this feature. 258 /// 259 void erase(Node n) {} 260 /// Deletes an edge. 261 262 ///\warning Not all graph structure provide this feature. 263 /// 264 void erase(Edge e) {} 265 266 /// Reset the graph. 255 /// Resets the graph. 267 256 268 257 /// This function deletes all edges and nodes of the graph. … … 272 261 int nodeNum() const { return 0;} 273 262 int edgeNum() const { return 0;} 274 263 264 /// Defalult constructor. 275 265 GraphSkeleton() {} 266 ///Copy consructor. 276 267 GraphSkeleton(const GraphSkeleton &G) {} 277 268 278 269 279 270 280 271 ///Read/write/reference map of the nodes to type \c T. … … 344 335 }; 345 336 337 /// An empty eraseable graph class. 338 339 /// This class provides all the common features of an \e eraseable graph 340 /// structure, 341 /// however completely without implementations and real data structures 342 /// behind the interface. 343 /// All graph algorithms should compile with this class, but it will not 344 /// run properly, of course. 345 /// 346 /// \todo This blabla could be replaced by a sepatate description about 347 /// Skeletons. 348 /// 349 /// It can be used for checking the interface compatibility, 350 /// or it can serve as a skeleton of a new graph structure. 351 /// 352 /// Also, you will find here the full documentation of a certain graph 353 /// feature, the documentation of a real graph imlementation 354 /// like @ref ListGraph or 355 /// @ref SmartGraph will just refer to this structure. 356 class EraseableGraphSkeleton : public GraphSkeleton 357 { 358 public: 359 /// Deletes a node. 360 void erase(Node n) {} 361 /// Deletes an edge. 362 void erase(Edge e) {} 363 364 /// Defalult constructor. 365 GraphSkeleton() {} 366 ///Copy consructor. 367 GraphSkeleton(const GraphSkeleton &G) {} 368 }; 369 370 346 371 // @} 347 372 -
src/work/alpar/invalid.h
r184 r242 3 3 #ifndef HUGO_INVALID_H 4 4 #define HUGO_INVALID_H 5 6 ///\file 7 ///\brief Definition of INVALID. 5 8 6 9 namespace hugo { -
src/work/alpar/mapskeleton.h
r209 r242 2 2 #ifndef HUGO_MAPSKELETON_H 3 3 #define HUGO_MAPSKELETON_H 4 5 ///\file 6 ///\brief Map concepts checking classes for testing and documenting. 4 7 5 8 namespace hugo { -
src/work/alpar/smart_graph.h
r215 r242 4 4 #define HUGO_SMART_GRAPH_H 5 5 6 ///\file 7 ///\brief SmartGraph and SymSmartGraph classes. 8 6 9 #include <vector> 7 10 #include <limits.h> … … 15 18 ///A smart graph class. 16 19 17 /// When you read this for the first time,18 /// please send an e-mail to alpar\@cs.elte.hu.19 ///20 20 ///This is a simple and fast graph implementation. 21 21 ///It is also quite memory efficient, but at the price 22 22 ///that <b> it does not support node and edge deletion</b>. 23 /// Apart from this it conforms to the graph interface documented under23 ///It conforms to the graph interface documented under 24 24 ///the description of \ref GraphSkeleton. 25 25 ///\sa \ref GraphSkeleton. -
src/work/athos/xy/boundingbox.h
r240 r242 1 1 // -*- c++ -*- 2 /**3 Implementation of a bounding box of plainvectors.4 5 */6 2 #ifndef HUGO_BOUNDINGBOX_H 7 3 #define HUGO_BOUNDINGBOX_H … … 12 8 namespace hugo { 13 9 10 /** \brief 11 Implementation of a bounding box of plainvectors. 12 13 */ 14 14 template<typename T> 15 15 class BoundingBox { -
src/work/athos/xy/xy.h
r240 r242 1 1 // -*- c++ -*- 2 /**3 2 dimensional vector (plainvector) implementation4 5 */6 2 #ifndef HUGO_XY_H 7 3 #define HUGO_XY_H … … 11 7 namespace hugo { 12 8 9 /** \brief 10 2 dimensional vector (plainvector) implementation 11 12 */ 13 13 template<typename T> 14 14 class xy {
Note: See TracChangeset
for help on using the changeset viewer.