src/lemon/concept/graph.h
changeset 1367 a490662291b9
parent 1359 1581f961cfaa
child 1426 91eb70983697
equal deleted inserted replaced
8:688735676cae 9:6330f3c92b2d
   183 	NodeIt() { }
   183 	NodeIt() { }
   184 	/// Copy constructor.
   184 	/// Copy constructor.
   185 	
   185 	
   186 	/// Copy constructor.
   186 	/// Copy constructor.
   187 	///
   187 	///
   188 	NodeIt(const NodeIt&) { }
   188 	NodeIt(const NodeIt& n) : Node(n) { }
   189 	/// Invalid constructor \& conversion.
   189 	/// Invalid constructor \& conversion.
   190 
   190 
   191 	/// Initialize the iterator to be invalid.
   191 	/// Initialize the iterator to be invalid.
   192 	/// \sa Invalid for more details.
   192 	/// \sa Invalid for more details.
   193 	NodeIt(Invalid) { }
   193 	NodeIt(Invalid) { }
   194 	/// Sets the iterator to the first node.
   194 	/// Sets the iterator to the first node.
   195 
   195 
   196 	/// Sets the iterator to the first node of \c g.
   196 	/// Sets the iterator to the first node of \c g.
   197 	///
   197 	///
   198 	NodeIt(const StaticGraph& g) { }
   198 	NodeIt(const StaticGraph&) { }
   199 	/// Node -> NodeIt conversion.
   199 	/// Node -> NodeIt conversion.
   200 
   200 
   201 	/// Sets the iterator to the node of \c g pointed by the trivial 
   201 	/// Sets the iterator to the node of \c g pointed by the trivial 
   202 	/// iterator n.
   202 	/// iterator n.
   203 	/// This feature necessitates that each time we 
   203 	/// This feature necessitates that each time we 
   265 	OutEdgeIt() { }
   265 	OutEdgeIt() { }
   266 	/// Copy constructor.
   266 	/// Copy constructor.
   267 
   267 
   268 	/// Copy constructor.
   268 	/// Copy constructor.
   269 	///
   269 	///
   270 	OutEdgeIt(const OutEdgeIt&) { }
   270 	OutEdgeIt(const OutEdgeIt& e) : Edge(e) { }
   271 	/// Initialize the iterator to be invalid.
   271 	/// Initialize the iterator to be invalid.
   272 
   272 
   273 	/// Initialize the iterator to be invalid.
   273 	/// Initialize the iterator to be invalid.
   274 	///
   274 	///
   275 	OutEdgeIt(Invalid) { }
   275 	OutEdgeIt(Invalid) { }
   277     
   277     
   278 	/// This constructor set the iterator to the first outgoing edge of
   278 	/// This constructor set the iterator to the first outgoing edge of
   279 	/// node
   279 	/// node
   280 	///@param n the node
   280 	///@param n the node
   281 	///@param g the graph
   281 	///@param g the graph
   282 	OutEdgeIt(const StaticGraph& g, const Node& n) { }
   282 	OutEdgeIt(const StaticGraph&, const Node&) { }
   283 	/// Edge -> OutEdgeIt conversion
   283 	/// Edge -> OutEdgeIt conversion
   284 
   284 
   285 	/// Sets the iterator to the value of the trivial iterator \c e.
   285 	/// Sets the iterator to the value of the trivial iterator \c e.
   286 	/// This feature necessitates that each time we 
   286 	/// This feature necessitates that each time we 
   287 	/// iterate the edge-set, the iteration order is the same.
   287 	/// iterate the edge-set, the iteration order is the same.
   314 	InEdgeIt() { }
   314 	InEdgeIt() { }
   315 	/// Copy constructor.
   315 	/// Copy constructor.
   316 
   316 
   317 	/// Copy constructor.
   317 	/// Copy constructor.
   318 	///
   318 	///
   319 	InEdgeIt(const InEdgeIt&) { }
   319 	InEdgeIt(const InEdgeIt& e) : Edge(e) { }
   320 	/// Initialize the iterator to be invalid.
   320 	/// Initialize the iterator to be invalid.
   321 
   321 
   322 	/// Initialize the iterator to be invalid.
   322 	/// Initialize the iterator to be invalid.
   323 	///
   323 	///
   324 	InEdgeIt(Invalid) { }
   324 	InEdgeIt(Invalid) { }
   326     
   326     
   327 	/// This constructor set the iterator to the first incoming edge of
   327 	/// This constructor set the iterator to the first incoming edge of
   328 	/// node
   328 	/// node
   329 	///@param n the node
   329 	///@param n the node
   330 	///@param g the graph
   330 	///@param g the graph
   331 	InEdgeIt(const StaticGraph& g, const Node& n) { }
   331 	InEdgeIt(const StaticGraph&, const Node&) { }
   332 	/// Edge -> InEdgeIt conversion
   332 	/// Edge -> InEdgeIt conversion
   333 
   333 
   334 	/// Sets the iterator to the value of the trivial iterator \c e.
   334 	/// Sets the iterator to the value of the trivial iterator \c e.
   335 	/// This feature necessitates that each time we 
   335 	/// This feature necessitates that each time we 
   336 	/// iterate the edge-set, the iteration order is the same.
   336 	/// iterate the edge-set, the iteration order is the same.
   337 	InEdgeIt(const StaticGraph& g, const Edge& n) { }
   337 	InEdgeIt(const StaticGraph&, const Edge&) { }
   338 	/// Next incoming edge
   338 	/// Next incoming edge
   339 
   339 
   340 	/// Assign the iterator to the next inedge of the corresponding node.
   340 	/// Assign the iterator to the next inedge of the corresponding node.
   341 	///
   341 	///
   342 	InEdgeIt& operator++() { return *this; }
   342 	InEdgeIt& operator++() { return *this; }
   359 	EdgeIt() { }
   359 	EdgeIt() { }
   360 	/// Copy constructor.
   360 	/// Copy constructor.
   361 
   361 
   362 	/// Copy constructor.
   362 	/// Copy constructor.
   363 	///
   363 	///
   364 	EdgeIt(const EdgeIt&) { }
   364 	EdgeIt(const EdgeIt& e) : Edge(e) { }
   365 	/// Initialize the iterator to be invalid.
   365 	/// Initialize the iterator to be invalid.
   366 
   366 
   367 	/// Initialize the iterator to be invalid.
   367 	/// Initialize the iterator to be invalid.
   368 	///
   368 	///
   369 	EdgeIt(Invalid) { }
   369 	EdgeIt(Invalid) { }
   370 	/// This constructor sets the iterator to first edge.
   370 	/// This constructor sets the iterator to first edge.
   371     
   371     
   372 	/// This constructor set the iterator to the first edge of
   372 	/// This constructor set the iterator to the first edge of
   373 	/// node
   373 	/// node
   374 	///@param g the graph
   374 	///@param g the graph
   375 	EdgeIt(const StaticGraph& g) { }
   375 	EdgeIt(const StaticGraph&) { }
   376 	/// Edge -> EdgeIt conversion
   376 	/// Edge -> EdgeIt conversion
   377 
   377 
   378 	/// Sets the iterator to the value of the trivial iterator \c e.
   378 	/// Sets the iterator to the value of the trivial iterator \c e.
   379 	/// This feature necessitates that each time we 
   379 	/// This feature necessitates that each time we 
   380 	/// iterate the edge-set, the iteration order is the same.
   380 	/// iterate the edge-set, the iteration order is the same.
   411 	NodeMap(const StaticGraph&) { }
   411 	NodeMap(const StaticGraph&) { }
   412 	///\e
   412 	///\e
   413 	NodeMap(const StaticGraph&, T) { }
   413 	NodeMap(const StaticGraph&, T) { }
   414 
   414 
   415 	///Copy constructor
   415 	///Copy constructor
   416 	NodeMap(const NodeMap&) { }
   416 	NodeMap(const NodeMap& nm) : ReadWriteMap< Node, T >(nm) { }
   417 	///Assignment operator
   417 	///Assignment operator
   418 	NodeMap& operator=(const NodeMap&) { return *this; }
   418 	NodeMap& operator=(const NodeMap&) { return *this; }
   419 	// \todo fix this concept
   419 	// \todo fix this concept
   420       };
   420       };
   421 
   421 
   434 	///\e
   434 	///\e
   435 	EdgeMap(const StaticGraph&) { }
   435 	EdgeMap(const StaticGraph&) { }
   436 	///\e
   436 	///\e
   437 	EdgeMap(const StaticGraph&, T) { }
   437 	EdgeMap(const StaticGraph&, T) { }
   438 	///Copy constructor
   438 	///Copy constructor
   439 	EdgeMap(const EdgeMap&) { }
   439 	EdgeMap(const EdgeMap& em) : ReadWriteMap<Edge,T>(em) { }
   440 	///Assignment operator
   440 	///Assignment operator
   441 	EdgeMap& operator=(const EdgeMap&) { return *this; }
   441 	EdgeMap& operator=(const EdgeMap&) { return *this; }
   442 	// \todo fix this concept    
   442 	// \todo fix this concept    
   443       };
   443       };
   444 
   444 
   468       ///Add a new edge to the graph.
   468       ///Add a new edge to the graph.
   469 
   469 
   470       ///Add a new edge to the graph with source node \c s
   470       ///Add a new edge to the graph with source node \c s
   471       ///and target node \c t.
   471       ///and target node \c t.
   472       ///\return the new edge.
   472       ///\return the new edge.
   473       Edge addEdge(Node s, Node t) { return INVALID; }
   473       Edge addEdge(Node, Node) { return INVALID; }
   474     
   474     
   475       /// Resets the graph.
   475       /// Resets the graph.
   476 
   476 
   477       /// This function deletes all edges and nodes of the graph.
   477       /// This function deletes all edges and nodes of the graph.
   478       /// It also frees the memory allocated to store them.
   478       /// It also frees the memory allocated to store them.
   498       ErasableGraph() { }
   498       ErasableGraph() { }
   499       /// Deletes a node.
   499       /// Deletes a node.
   500 
   500 
   501       /// Deletes node \c n node.
   501       /// Deletes node \c n node.
   502       ///
   502       ///
   503       void erase(Node n) { }
   503       void erase(Node) { }
   504       /// Deletes an edge.
   504       /// Deletes an edge.
   505 
   505 
   506       /// Deletes edge \c e edge.
   506       /// Deletes edge \c e edge.
   507       ///
   507       ///
   508       void erase(Edge e) { }
   508       void erase(Edge) { }
   509 
   509 
   510       template <typename _Graph>
   510       template <typename _Graph>
   511       struct Constraints : public _ErasableGraph::Constraints<_Graph> {};
   511       struct Constraints : public _ErasableGraph::Constraints<_Graph> {};
   512 
   512 
   513     };
   513     };