Changeset 873:f3a30fda2e49 in lemon-0.x
- Timestamp:
- 09/16/04 21:23:41 (20 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1175
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/graphs.dox
r808 r873 9 9 10 10 11 Each graph should meet the \ref ConstGraph concept. This concept does 11 Each graph should meet the 12 \ref hugo::skeleton::StaticGraphSkeleton "StaticGraph" concept. 13 This concept does not 12 14 makes it possible to change the graph (i.e. it is not possible to add 13 15 or delete edges or nodes). Most of the graph algorithms will run on 14 16 these graphs. 15 17 16 The graphs meeting the \ref ExtendableGraph concept allow node and 18 The graphs meeting the 19 \ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph" 20 concept allow node and 17 21 edge addition. You can also "clear" (i.e. erase all edges and nodes) 18 22 such a graph. 19 23 20 In case of graphs meeting the full feature \ref ErasableGraph concept 24 In case of graphs meeting the full feature 25 \ref hugo::skeleton::ErasableGraphSkeleton "ErasableGraph" 26 concept 21 27 you can also erase individual edges and node in arbitrary order. 22 28 23 29 The implemented graph structures are the following. 24 30 \li \ref hugo::ListGraph "ListGraph" is the most versatile graph class. It meets 25 the ErasableGraph concept and it also have some convenience features. 31 the hugo::skeleton::ErasableGraphSkeleton "ErasableGraph" concept 32 and it also have some convenience features. 26 33 \li \ref hugo::SmartGraph "SmartGraph" is a more memory 27 34 efficient version of \ref hugo::ListGraph "ListGraph". The 28 price of it is that it only meets the \ref ExtendableGraph concept, 35 price of it is that it only meets the 36 \ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph" concept, 29 37 so you cannot delete individual edges or nodes. 30 38 \li \ref hugo::SymListGraph "SymListGraph" and … … 47 55 can be used as a base class of \ref hugo::EdgeSet "EdgeSet". 48 56 \li \ref hugo::EdgeSet "EdgeSet" can be used to create a new graph on 49 the edge set of another graph. The base graph can be an arbitrary graph and it57 the node set of another graph. The base graph can be an arbitrary graph and it 50 58 is possible to attach several \ref hugo::EdgeSet "EdgeSet"'s to a base graph. 51 59 … … 53 61 \todo Some cross-refs are wrong. 54 62 55 \bug This file must be updated accordig to the new st ile iterators.63 \bug This file must be updated accordig to the new style iterators. 56 64 57 65 The graph structures itself can not store data attached … … 59 67 \ref maps "map classes" 60 68 to dynamically attach data the to graph components. 61 62 63 64 69 65 70 The following program demonstrates the basic features of HugoLib's graph … … 191 196 \endcode 192 197 193 In generic graph optimization programminggraphs are not containers rather198 As we mentioned above, graphs are not containers rather 194 199 incidence structures which are iterable in many ways. HugoLib introduces 195 200 concepts that allow us to attach containers to graphs. These containers are -
src/hugo/skeletons/graph.h
r826 r873 433 433 /// with additional functionality which enables to build a 434 434 /// graph from scratch. 435 class GraphSkeleton : public StaticGraphSkeleton435 class ExtendableGraphSkeleton : public StaticGraphSkeleton 436 436 { 437 437 public: … … 440 440 /// Defalult constructor. 441 441 /// 442 GraphSkeleton() { }442 ExtendableGraphSkeleton() { } 443 443 ///Add a new node to the graph. 444 444 … … 465 465 /// This class is an extension of \c GraphSkeleton. It also makes it 466 466 /// possible to erase edges or nodes. 467 class ErasableGraphSkeleton : public GraphSkeleton467 class ErasableGraphSkeleton : public ExtendableGraphSkeleton 468 468 { 469 469 public: -
src/test/graph_test.cc
r826 r873 53 53 54 54 //Compile GraphSkeleton 55 template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>55 template void hugo::checkCompileStaticGraph<skeleton::StaticGraphSkeleton> 56 56 (skeleton::StaticGraphSkeleton &); 57 57 58 template void checkCompileGraph<skeleton::GraphSkeleton>59 (skeleton:: GraphSkeleton &);58 template void hugo::checkCompileGraph<skeleton::ExtendableGraphSkeleton> 59 (skeleton::ExtendableGraphSkeleton &); 60 60 61 template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>61 template void hugo::checkCompileErasableGraph<skeleton::ErasableGraphSkeleton> 62 62 (skeleton::ErasableGraphSkeleton &); 63 63 64 64 //Compile SmartGraph 65 template void checkCompileGraph<SmartGraph>(SmartGraph &);66 template void checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);65 template void hugo::checkCompileGraph<SmartGraph>(SmartGraph &); 66 template void hugo::checkCompileGraphFindEdge<SmartGraph>(SmartGraph &); 67 67 68 68 //Compile SymSmartGraph 69 template void checkCompileGraph<SymSmartGraph>(SymSmartGraph &);70 template void checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);69 template void hugo::checkCompileGraph<SymSmartGraph>(SymSmartGraph &); 70 template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &); 71 71 72 72 //Compile ListGraph 73 template void checkCompileGraph<ListGraph>(ListGraph &);74 template void checkCompileErasableGraph<ListGraph>(ListGraph &);75 template void checkCompileGraphFindEdge<ListGraph>(ListGraph &);73 template void hugo::checkCompileGraph<ListGraph>(ListGraph &); 74 template void hugo::checkCompileErasableGraph<ListGraph>(ListGraph &); 75 template void hugo::checkCompileGraphFindEdge<ListGraph>(ListGraph &); 76 76 77 77 78 78 //Compile SymListGraph 79 template void checkCompileGraph<SymListGraph>(SymListGraph &);80 template void checkCompileErasableGraph<SymListGraph>(SymListGraph &);81 template void checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);79 template void hugo::checkCompileGraph<SymListGraph>(SymListGraph &); 80 template void hugo::checkCompileErasableGraph<SymListGraph>(SymListGraph &); 81 template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &); 82 82 83 83 //Compile FullGraph 84 template void checkCompileStaticGraph<FullGraph>(FullGraph &);85 template void checkCompileGraphFindEdge<FullGraph>(FullGraph &);84 template void hugo::checkCompileStaticGraph<FullGraph>(FullGraph &); 85 template void hugo::checkCompileGraphFindEdge<FullGraph>(FullGraph &); 86 86 87 87 //Compile EdgeSet <ListGraph> 88 template void checkCompileGraph<EdgeSet <ListGraph> >(EdgeSet <ListGraph> &); 89 template void checkCompileGraphEraseEdge<EdgeSet <ListGraph> > 88 template void hugo::checkCompileGraph<EdgeSet <ListGraph> > 90 89 (EdgeSet <ListGraph> &); 91 template void checkCompileGraphFindEdge<EdgeSet <ListGraph> > 90 template void hugo::checkCompileGraphEraseEdge<EdgeSet <ListGraph> > 91 (EdgeSet <ListGraph> &); 92 template void hugo::checkCompileGraphFindEdge<EdgeSet <ListGraph> > 92 93 (EdgeSet <ListGraph> &); 93 94 94 95 //Compile EdgeSet <NodeSet> 95 template void checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);96 template void checkCompileGraphEraseEdge<EdgeSet <NodeSet> >96 template void hugo::checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &); 97 template void hugo::checkCompileGraphEraseEdge<EdgeSet <NodeSet> > 97 98 (EdgeSet <NodeSet> &); 98 template void checkCompileGraphFindEdge<EdgeSet <NodeSet> >99 template void hugo::checkCompileGraphFindEdge<EdgeSet <NodeSet> > 99 100 (EdgeSet <NodeSet> &); 100 101 -
src/work/marci/graph_wrapper_test.cc
r870 r873 57 57 // (skeleton::StaticGraphSkeleton &); 58 58 59 // template void checkCompileGraph<skeleton:: GraphSkeleton>60 // (skeleton:: GraphSkeleton &);59 // template void checkCompileGraph<skeleton::ExtendableGraphSkeleton> 60 // (skeleton::ExtendableGraphSkeleton &); 61 61 62 62 // template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
Note: See TracChangeset
for help on using the changeset viewer.