1 // -*- c++ -*- // |
1 // -*- c++ -*- // |
2 |
|
3 /** |
|
4 @defgroup paths Path Structures |
|
5 @ingroup datas |
|
6 \brief Path structures implemented in Hugo. |
|
7 |
|
8 Hugolib provides flexible data structures |
|
9 to work with paths. |
|
10 |
|
11 All of them have the same interface, especially they can be built or extended |
|
12 using a standard Builder subclass. This make is easy to have e.g. the Dijkstra |
|
13 algorithm to store its result in any kind of path structure. |
|
14 |
|
15 */ |
|
16 |
2 |
17 ///\ingroup paths |
3 ///\ingroup paths |
18 ///\file |
4 ///\file |
19 ///\brief Classes for representing paths in graphs. |
5 ///\brief Classes for representing paths in graphs. |
20 |
6 |
21 #ifndef HUGO_PATH_H |
7 #ifndef HUGO_PATH_H |
22 #define HUGO_PATH_H |
8 #define HUGO_PATH_H |
23 |
9 |
24 #include <deque> |
|
25 #include <vector> |
|
26 #include <algorithm> |
|
27 |
|
28 #include <hugo/invalid.h> |
10 #include <hugo/invalid.h> |
29 #include <hugo/error.h> |
|
30 #include <debug.h> |
|
31 |
11 |
32 namespace hugo { |
12 namespace hugo { |
33 namespace skeleton { |
13 namespace skeleton { |
34 /// \addtogroup skeletons |
14 /// \addtogroup skeletons |
35 /// @{ |
15 /// @{ |
36 |
16 |
37 |
17 |
38 //! \brief A structure for representing directed path in a graph. |
18 //! \brief A skeletom structure for representing directed paths in a graph. |
39 //! |
19 //! |
40 //! A structure for representing directed path in a graph. |
20 //! A skeleton structure for representing directed paths in a graph. |
41 //! \param GR The graph type in which the path is. |
21 //! \param GR The graph type in which the path is. |
42 //! |
22 //! |
43 //! In a sense, the path can be treated as a graph, for is has \c NodeIt |
23 //! In a sense, the path can be treated as a graph, for is has \c NodeIt |
44 //! and \c EdgeIt with the same usage. These types converts to the \c Node |
24 //! and \c EdgeIt with the same usage. These types converts to the \c Node |
45 //! and \c Edge of the original graph. |
25 //! and \c Edge of the original graph. |