56 @end deftp  | 
    56 @end deftp  | 
    57   | 
    57   | 
    58 @deftp {Type} Graph::EdgeIt | 
    58 @deftp {Type} Graph::EdgeIt | 
    59 @deftpx {Type} Graph::InEdgeIt | 
    59 @deftpx {Type} Graph::InEdgeIt | 
    60 @deftpx {Type} Graph::OutEdgeIt | 
    60 @deftpx {Type} Graph::OutEdgeIt | 
    61 @deftpx {Type} Graph::BiEdgeIt | 
    61 @deftpx {Type} Graph::EachEdgeIt | 
    62 @deftpx {Type} Graph::SymEdgeIt | 
    62 @c @deftpx {Type} Graph::BiEdgeIt | 
         | 
    63 @c @deftpx {Type} Graph::SymEdgeIt | 
    63 Each of these types points an edge uniquely. The difference between the  | 
    64 Each of these types points an edge uniquely. The difference between the  | 
    64 @code{EdgeIt} and the | 
    65 @code{EdgeIt} and the | 
    65 @c @mref{Graph-NodeIterator,@code{EdgeIterator}} | 
    66 @c @mref{Graph-NodeIterator,@code{EdgeIterator}} | 
    66 @mref{Graph-NodeIterator , EdgeIterator} | 
    67 @mref{Graph-NodeIterator , EdgeIterator} | 
    67 series is that  | 
    68 series is that  | 
    68 @code{EdgeIt} requires the graph structure itself for most of the | 
    69 @code{EdgeIt} requires the graph structure itself for most of the | 
    69 operations.  | 
    70 operations.  | 
    70 @end deftp  | 
    71 @end deftp  | 
    71   | 
    72   | 
    72 @anchor{Graph-EdgeIterator} | 
    73 @anchor{Graph-EdgeIterator} | 
    73 @deftp {Type} Graph::EdgeIterator | 
    74 @c @deftp {Type} Graph::EdgeIterator | 
    74 @deftpx {Type} Graph::InEdgeIterator | 
    75 @c @deftpx {Type} Graph::InEdgeIterator | 
    75 @deftpx {Type} Graph::OutEdgeIterator | 
    76 @c @deftpx {Type} Graph::OutEdgeIterator | 
    76 @deftpx {Type} Graph::BiEdgeIterator | 
    77 @c @deftpx {Type} Graph::BiEdgeIterator | 
    77 @deftpx {Type} Graph::SymEdgeIterator | 
    78 @c @deftpx {Type} Graph::SymEdgeIterator | 
    78 @deftpx {Type} Graph::EachEdgeIterator | 
    79 @c @deftpx {Type} Graph::EachEdgeIterator | 
    79 Each of these types points an edge uniquely. The difference between the  | 
    80 @c Each of these types points an edge uniquely. The difference between the  | 
    80 @code{EdgeIt} and the @code{EdgeIterator} series is that | 
    81 @c @code{EdgeIt} and the @code{EdgeIterator} series is that | 
    81 @code{EdgeIt} requires the graph structure itself for most of the | 
    82 @c @code{EdgeIt} requires the graph structure itself for most of the | 
    82 operations.   | 
    83 @c operations.   | 
    83   | 
    84   | 
    84 For the @code{EdgeIterator} types you can use operator @code{++} | 
    85 @c For the @code{EdgeIterator} types you can use operator @code{++} | 
    85 (both the prefix and the posfix one) to obtain the next edge.  | 
    86 @c (both the prefix and the posfix one) to obtain the next edge.  | 
    86 @end deftp  | 
    87 @c @end deftp  | 
    87   | 
    88   | 
    88 @deftp {Type} Graph::NodeMap | 
    89 @deftp {Type} Graph::NodeMap<typename T> | 
    89 @deftpx {Type} Graph::EdgeMap | 
    90 @deftpx {Type} Graph::EdgeMap<typename T> | 
    90 There are the default property maps for the edges and the nodes.  | 
    91 There are the default property maps for the edges and the nodes.  | 
    91 @end deftp  | 
    92 @end deftp  | 
    92   | 
    93   | 
         | 
    94 @deftp {Type} Graph::DynNodeMap<typename T> | 
         | 
    95 @deftpx {Type} Graph::DynEdgeMap<typename T> | 
         | 
    96 There are the default @emph{dynamic} property maps for the edges and the nodes. | 
         | 
    97 @end deftp  | 
    93   | 
    98   | 
    94 @subsection Member Functions  | 
    99 @subsection Member Functions  | 
    95   | 
   100   | 
    96 @subsubsection Constructors  | 
   101 @subsubsection Constructors  | 
    97   | 
         | 
    98   | 
   102   | 
    99 @deftypefun { } Graph::Graph () | 
   103 @deftypefun { } Graph::Graph () | 
   100 The default constructor.  | 
   104 The default constructor.  | 
   101 @end deftypefun  | 
   105 @end deftypefun  | 
   102   | 
   106   | 
   103 @c @deftypefun { } Graph::Graph (Graph@tie{}&) | 
   107 @c @deftypefun { } Graph::Graph (Graph@tie{}&) | 
   104 @deftypefun { } Graph::Graph (Graph &) | 
   108 @deftypefun { } Graph::Graph (Graph &) | 
   105 The copy constructor. Not yet implemented.  | 
   109 The copy constructor.  | 
   106 @end deftypefun  | 
   110 @end deftypefun  | 
   107   | 
   111   | 
   108 @subsubsection Graph Maintenence Operations  | 
   112 @subsubsection Graph Maintenence Operations  | 
   109   | 
   113   | 
   110 @deftypefun NodeIterator Graph::addNode ()  | 
   114 @deftypefun NodeIt Graph::addNode ()  | 
   111 Adds a new node to the graph and returns a @code{NodeIterator} pointing to it. | 
   115 Adds a new node to the graph and returns a @code{NodeIt} pointing to it. | 
   112 @end deftypefun  | 
   116 @end deftypefun  | 
   113   | 
   117   | 
   114 @deftypefun EdgeIterator Graph::addEdge (@w{const @mref{Graph-NodeIterator,NodeIterator} @var{from}}, @w{const @mref{Graph-NodeIterator,NodeIterator} @var{to}}) | 
   118 @deftypefun EdgeIt Graph::addEdge (@w{const @mref{Graph-NodeIterator,NodeIt} @var{from}}, @w{const @mref{Graph-NodeIterator,NodeIt} @var{to}}) | 
   115 Adds a new edge with tail @var{from} and head @var{to} to the graph | 
   119 Adds a new edge with tail @var{from} and head @var{to} to the graph | 
   116 and returns an @code{EdgeIterator} pointing to it. | 
   120 and returns an @code{EdgeIt} pointing to it. | 
   117 @end deftypefun  | 
   121 @end deftypefun  | 
   118   | 
   122   | 
   119 @deftypefun void Graph::delete (@w{const @mref{Graph-NodeIterator,NodeIterator} @var{n}}) | 
   123 @deftypefun void Graph::delete (@w{const @mref{Graph-NodeIterator,NodeIt} @var{n}}) | 
   120 Deletes the node @var{n}. It also deletes the adjacent edges. | 
   124 Deletes the node @var{n}. It also deletes the adjacent edges. | 
   121 @end deftypefun  | 
   125 @end deftypefun  | 
   122   | 
   126   | 
   123 @deftypefun void Graph::delete (@w{const @mref{Graph-EdgeIterator,EdgeIterator} @var{e}}) | 
   127 @deftypefun void Graph::delete (@w{const @mref{Graph-EdgeIterator,EdgeIt} @var{e}}) | 
   124 Deletes the edge @var{n}. | 
   128 Deletes the edge @var{n}. | 
   125 @end deftypefun  | 
   129 @end deftypefun  | 
   126   | 
   130   | 
   127 @deftypefun void Graph::clean ()  | 
   131 @deftypefun void Graph::clear ()  | 
   128 Deletes all edges and nodes from the graph.  | 
   132 Deletes all edges and nodes from the graph.  | 
   129 @end deftypefun  | 
   133 @end deftypefun  | 
   130   | 
   134   | 
   131 @deftypefun int Graph::nodeNum ()  | 
   135 @deftypefun int Graph::nodeNum ()  | 
   132 Returns the number of the nodes in the graph.  | 
   136 Returns the number of the nodes in the graph.  | 
         | 
   137 ??? Is it necessary???  | 
   133 @end deftypefun  | 
   138 @end deftypefun  | 
   134   | 
   139   | 
   135 @subsubsection NodeIt Operations  | 
   140 @subsubsection NodeIt Operations  | 
   136   | 
   141   | 
   137 @deftypefun NodeIt Graph::getFirst (NodeIt &@var{n}) | 
   142 @deftypefun NodeIt Graph::getFirst (NodeIt &@var{n}) const | 
   138 @deftypefunx NodeIt Graph::next (const NodeIt @var{n}) | 
   143 @deftypefunx NodeIt Graph::getNext (NodeIt @var{n}) const | 
   139 @deftypefunx {NodeIt &} Graph::goNext (NodeIt &@var{n}) | 
   144 @deftypefunx {NodeIt &} Graph::next (NodeIt &@var{n}) | 
   140 The nodes in the graph forms a list. @code{GetFirst(n)} sets @var{n} to | 
   145 The nodes in the graph forms a list. @code{getFirst(n)} sets @var{n} to | 
   141 be the first node. @code{next(n)} gives back the subsequent | 
   146 be the first node. @code{getNext(n)} gives back the subsequent | 
   142 node. @code{Next(n)} is equivalent to @code{n=Next(n)}, though it | 
   147 node. @code{next(n)} is equivalent to @code{n=getNext(n)}, though it | 
   143 might be faster.  ??? What should be the return value ???  | 
   148 might be faster.  ??? What should be the return value ???  | 
   144 @end deftypefun  | 
   149 @end deftypefun  | 
   145   | 
   150   | 
   146 @deftypefun bool Graph::valid (NodeIt &@var{e}) | 
   151 @deftypefun bool Graph::valid (NodeIt &@var{e}) | 
   147 @deftypefunx bool NodeIt::valid ()  | 
   152 @c @deftypefunx bool NodeIt::valid ()  | 
   148 These functions check if and NodeIt is valid or not.  | 
   153 These functions check if and NodeIt is valid or not.  | 
   149 ??? Which one should be implemented ???  | 
   154 @c ??? Which one should be implemented ???  | 
   150 @end deftypefun  | 
   155 @end deftypefun  | 
   151   | 
   156   | 
   152 @subsubsection EdgeIt Operations  | 
   157 @subsubsection EdgeIt Operations  | 
   153   | 
   158   | 
   154 @deftypefun EachEdgeIt Graph::getFirst (const EachEdgeIt & @var{e}) | 
   159 @deftypefun EachEdgeIt Graph::getFirst (const EachEdgeIt & @var{e}) const | 
   155 @deftypefunx EachEdgeIt Graph::next (const EachEdgeIt @var{n}) | 
   160 @deftypefunx EachEdgeIt Graph::getNext (EachEdgeIt @var{n}) const | 
   156 @deftypefunx {EachEdgeIt &} Graph::goNext (EachEdgeIt &@var{n}) | 
   161 @deftypefunx {EachEdgeIt &} Graph::next (EachEdgeIt &@var{n}) | 
   157 With these functions you can go though all the edges of the graph.  | 
   162 With these functions you can go though all the edges of the graph.  | 
   158 ??? What should be the return value ???  | 
   163 @c ??? What should be the return value ???  | 
   159 @end deftypefun  | 
   164 @end deftypefun  | 
   160   | 
   165   | 
   161 @deftypefun InEdgeIt Graph::getFirst (const InEdgeIt & @var{e}, const NodeIt @var{n}) | 
   166 @deftypefun InEdgeIt &Graph::getFirst (InEdgeIt & @var{e}, const NodeIt @var{n}) | 
   162 @deftypefunx OutEdgeIt Graph::getFirst (const OutEdgeIt & @var{e}, const NodeIt @var{n}) | 
   167 @deftypefunx OutEdgeIt &Graph::getFirst (OutEdgeIt & @var{e}, const NodeIt @var{n}) | 
   163 @deftypefunx SymEdgeIt Graph::getFirst (const SymEdgeIt & @var{e}, const NodeIt @var{n}) | 
   168 @c @deftypefunx SymEdgeIt &Graph::getFirst (SymEdgeIt & @var{e}, const NodeIt @var{n}) | 
   164 The edges leaving from, arriving at or adjacent with a node forms a  | 
   169 The edges leaving from  | 
         | 
   170 or  | 
         | 
   171 arriving at  | 
         | 
   172 @c or adjacent with  | 
         | 
   173 a node forms a  | 
   165 list.  These functions give back the first elements of these  | 
   174 list.  These functions give back the first elements of these  | 
   166 lists. The exact behavior depends on the type of @var{e}. | 
   175 lists. The exact behavior depends on the type of @var{e}. | 
   167   | 
   176   | 
   168 If @var{e} is an @code{InEdgeIt} or an @code{OutEdgeIt} then | 
   177 If @var{e} is an @code{InEdgeIt} or an @code{OutEdgeIt} then | 
   169 @code{getFirst} sets @var{e} to be the first incoming or outgoing edge | 
   178 @code{getFirst} sets @var{e} to be the first incoming or outgoing edge | 
   170 of the node @var{n}, respectively. | 
   179 of the node @var{n}, respectively. | 
   171   | 
   180   | 
   172 If @var{e} is a @code{SymEdgeIt} then | 
   181 @c If @var{e} is a @code{SymEdgeIt} then | 
   173 @code{getFirst} sets @var{e} to be the first incoming if there exists one | 
   182 @c @code{getFirst} sets @var{e} to be the first incoming if there exists one | 
   174 otherwise the first outgoing edge.  | 
   183 @c otherwise the first outgoing edge.  | 
   175   | 
   184   | 
   176 If there are no such edges, @var{e} will be invalid. | 
   185 If there are no such edges, @var{e} will be invalid. | 
   177   | 
   186   | 
   178 @end deftypefun  | 
   187 @end deftypefun  | 
   179   | 
   188   |