- Name changing: XYZGraphSkeleton -> XYZGraph
authoralpar
Fri, 17 Sep 2004 15:51:50 +0000
changeset 8809d0bfd35b97c
parent 879 5e284075b193
child 881 a9f19f38970b
- Name changing: XYZGraphSkeleton -> XYZGraph
- Fix some bad \ref's in the doc.
doc/graphs.dox
src/hugo/dijkstra.h
src/hugo/full_graph.h
src/hugo/list_graph.h
src/hugo/skeletons/graph.h
src/hugo/smart_graph.h
src/test/bfs_test.cc
src/test/dfs_test.cc
src/test/dijkstra_test.cc
src/test/graph_test.cc
src/test/kruskal_test.cc
src/test/preflow_test.cc
src/work/alpar/list_graph_demo.cc
src/work/alpar/smart_graph_demo.cc
src/work/deba/dijkstra.h
src/work/deba/list_graph.h
src/work/marci/experiment/graph_wrapper.h
src/work/marci/experiment/graph_wrapper_1.h
src/work/peter/edgepathgraph.h
src/work/peter/hierarchygraph.h
     1.1 --- a/doc/graphs.dox	Fri Sep 17 15:11:39 2004 +0000
     1.2 +++ b/doc/graphs.dox	Fri Sep 17 15:51:50 2004 +0000
     1.3 @@ -9,31 +9,31 @@
     1.4  
     1.5  
     1.6  Each graph should meet the
     1.7 -\ref hugo::skeleton::StaticGraphSkeleton "StaticGraph" concept.
     1.8 +\ref hugo::skeleton::StaticGraph "StaticGraph" concept.
     1.9  This concept does not
    1.10  makes it possible to change the graph (i.e. it is not possible to add
    1.11  or delete edges or nodes). Most of the graph algorithms will run on
    1.12  these graphs.
    1.13  
    1.14  The graphs meeting the
    1.15 -\ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph"
    1.16 +\ref hugo::skeleton::ExtendableGraph "ExtendableGraph"
    1.17  concept allow node and
    1.18  edge addition. You can also "clear" (i.e. erase all edges and nodes)
    1.19  such a graph.
    1.20  
    1.21  In case of graphs meeting the full feature
    1.22 -\ref hugo::skeleton::ErasableGraphSkeleton "ErasableGraph"
    1.23 +\ref hugo::skeleton::ErasableGraph "ErasableGraph"
    1.24  concept
    1.25  you can also erase individual edges and node in arbitrary order.
    1.26  
    1.27  The implemented graph structures are the following.
    1.28  \li \ref hugo::ListGraph "ListGraph" is the most versatile graph class. It meets
    1.29 -the hugo::skeleton::ErasableGraphSkeleton "ErasableGraph" concept
    1.30 +the hugo::skeleton::ErasableGraph "ErasableGraph" concept
    1.31  and it also have some convenience features.
    1.32  \li \ref hugo::SmartGraph "SmartGraph" is a more memory
    1.33  efficient version of \ref hugo::ListGraph "ListGraph". The
    1.34  price of it is that it only meets the
    1.35 -\ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph" concept,
    1.36 +\ref hugo::skeleton::ExtendableGraph "ExtendableGraph" concept,
    1.37  so you cannot delete individual edges or nodes.
    1.38  \li \ref hugo::SymListGraph "SymListGraph" and
    1.39  \ref hugo::SymSmartGraph "SymSmartGraph" classes are very similar to
     2.1 --- a/src/hugo/dijkstra.h	Fri Sep 17 15:11:39 2004 +0000
     2.2 +++ b/src/hugo/dijkstra.h	Fri Sep 17 15:51:50 2004 +0000
     2.3 @@ -18,10 +18,11 @@
     2.4  
     2.5    ///This class provides an efficient implementation of %Dijkstra algorithm.
     2.6    ///The edge lengths are passed to the algorithm using a
     2.7 -  ///\ref ReadMapSkeleton "readable map",
     2.8 +  ///\ref skeleton::ReadMap "ReadMap",
     2.9    ///so it is easy to change it to any kind of length.
    2.10    ///
    2.11 -  ///The type of the length is determined by the \c ValueType of the length map.
    2.12 +  ///The type of the length is determined by the
    2.13 +  ///\ref skeleton::ReadMap::ValueType "ValueType" of the length map.
    2.14    ///
    2.15    ///It is also possible to change the underlying priority heap.
    2.16    ///
    2.17 @@ -32,7 +33,7 @@
    2.18    ///lengths of the edges. It is read once for each edge, so the map
    2.19    ///may involve in relatively time consuming process to compute the edge
    2.20    ///length if it is necessary. The default map type is
    2.21 -  ///\ref GraphSkeleton::EdgeMap "Graph::EdgeMap<int>"
    2.22 +  ///\ref skeleton::StaticGraph::EdgeMap "Graph::EdgeMap<int>"
    2.23    ///\param Heap The heap type used by the %Dijkstra
    2.24    ///algorithm. The default
    2.25    ///is using \ref BinHeap "binary heap".
     3.1 --- a/src/hugo/full_graph.h	Fri Sep 17 15:11:39 2004 +0000
     3.2 +++ b/src/hugo/full_graph.h	Fri Sep 17 15:51:50 2004 +0000
     3.3 @@ -27,9 +27,9 @@
     3.4    ///This is a simple and fast directed full graph implementation.
     3.5    ///It is completely static, so you can neither add nor delete either
     3.6    ///edges or nodes.
     3.7 -  ///Otherwise it conforms to the graph interface documented under
     3.8 -  ///the description of \ref GraphSkeleton.
     3.9 -  ///\sa \ref GraphSkeleton.
    3.10 +  ///Thus it conforms to
    3.11 +  ///the \ref skeleton::StaticGraph "StaticGraph" concept
    3.12 +  ///\sa skeleton::StaticGraph.
    3.13    ///\todo What about loops?
    3.14    ///\todo Don't we need SymEdgeMap?
    3.15    ///
     4.1 --- a/src/hugo/list_graph.h	Fri Sep 17 15:11:39 2004 +0000
     4.2 +++ b/src/hugo/list_graph.h	Fri Sep 17 15:51:50 2004 +0000
     4.3 @@ -29,10 +29,9 @@
     4.4  
     4.5    ///This is a simple and fast erasable graph implementation.
     4.6    ///
     4.7 -  ///It conforms to the graph interface documented under
     4.8 -  ///the description of
     4.9 -  ///\ref skeleton::ErasableGraphSkeleton "ErasableGraphSkeleton".
    4.10 -  ///\sa skeleton::ErasableGraphSkeleton.
    4.11 +  ///It conforms to the
    4.12 +  ///\ref skeleton::ErasableGraph "ErasableGraph" concept.
    4.13 +  ///\sa skeleton::ErasableGraph.
    4.14    class ListGraph {
    4.15  
    4.16      //Nodes are double linked.
    4.17 @@ -312,7 +311,6 @@
    4.18        NodeIt() : Node() { }
    4.19        NodeIt(Invalid i) : Node(i) { }
    4.20        NodeIt(const ListGraph& _G) : Node(_G.first_node), G(&_G) { }
    4.21 -      ///\todo Undocumented conversion Node -\> NodeIt.
    4.22        NodeIt(const ListGraph& _G,Node n) : Node(n), G(&_G) { }
    4.23        NodeIt &operator++() {
    4.24  	n=G->nodes[n].next; 
    4.25 @@ -426,7 +424,7 @@
    4.26    ///that complements this
    4.27    ///feature by
    4.28    ///storing shared values for the edge pairs. The usual
    4.29 -  ///\ref GraphSkeleton::EdgeMap "EdgeMap"
    4.30 +  ///\ref Graph::EdgeMap "EdgeMap"
    4.31    ///can be used
    4.32    ///as well.
    4.33    ///
    4.34 @@ -494,12 +492,13 @@
    4.35    ///The most useful application of this class is to be the node set of an
    4.36    ///\ref EdgeSet class.
    4.37    ///
    4.38 -  ///It conforms to the graph interface documented under
    4.39 -  ///the description of \ref GraphSkeleton with the exception that you cannot
    4.40 +  ///It conforms to 
    4.41 +  ///the \ref skeleton::ExtendableGraph "ExtendableGraph" concept
    4.42 +  ///with the exception that you cannot
    4.43    ///add (or delete) edges. The usual edge iterators are exists, but they are
    4.44    ///always \ref INVALID.
    4.45 -  ///\sa \ref GraphSkeleton
    4.46 -  ///\sa \ref EdgeSet
    4.47 +  ///\sa skeleton::ExtendableGraph
    4.48 +  ///\sa EdgeSet
    4.49    class NodeSet {
    4.50  
    4.51      //Nodes are double linked.
    4.52 @@ -790,12 +789,13 @@
    4.53    ///(and from \ref EdgeSet, as well)
    4.54    ///
    4.55    ///\param GG The type of the graph which shares its node set with this class.
    4.56 -  ///Its interface must conform with \ref GraphSkeleton.
    4.57 +  ///Its interface must conform to the
    4.58 +  ///\ref skeleton::StaticGraph "StaticGraph" concept.
    4.59    ///
    4.60 -  ///It conforms to the graph interface documented under
    4.61 -  ///the description of \ref GraphSkeleton.
    4.62 -  ///\sa \ref GraphSkeleton.
    4.63 -  ///\sa \ref NodeSet.
    4.64 +  ///It conforms to the 
    4.65 +  ///\ref skeleton::ExtendableGraph "ExtendableGraph" concept.
    4.66 +  ///\sa skeleton::ExtendableGraph.
    4.67 +  ///\sa NodeSet.
    4.68    template<typename GG>
    4.69    class EdgeSet {
    4.70  
    4.71 @@ -897,15 +897,14 @@
    4.72      
    4.73      ///Construates a new graph based on the nodeset of an existing one.
    4.74      ///\param _G the base graph.
    4.75 -    ///\todo It looks like a copy constructor, but it isn't.
    4.76 -    EdgeSet(NodeGraphType &_G) 
    4.77 +    explicit EdgeSet(NodeGraphType &_G) 
    4.78        : G(_G), nodes(_G), edges(),
    4.79  	first_free_edge(-1) {}
    4.80      ///Copy constructor
    4.81  
    4.82      ///Makes a copy of an EdgeSet.
    4.83      ///It will be based on the same graph.
    4.84 -    EdgeSet(const EdgeSet &_g) 
    4.85 +    explicit EdgeSet(const EdgeSet &_g) 
    4.86        : G(_g.G), nodes(_g.G), edges(_g.edges),
    4.87  	first_free_edge(_g.first_free_edge) {}
    4.88      
     5.1 --- a/src/hugo/skeletons/graph.h	Fri Sep 17 15:11:39 2004 +0000
     5.2 +++ b/src/hugo/skeletons/graph.h	Fri Sep 17 15:51:50 2004 +0000
     5.3 @@ -4,7 +4,7 @@
     5.4  
     5.5  ///\ingroup skeletons
     5.6  ///\file
     5.7 -///\brief Declaration of GraphSkeleton.
     5.8 +///\brief Declaration of Graph.
     5.9  
    5.10  #include <hugo/invalid.h>
    5.11  #include <hugo/skeletons/maps.h>
    5.12 @@ -31,19 +31,19 @@
    5.13      /// feature, the documentation of a real graph imlementation
    5.14      /// like @ref ListGraph or
    5.15      /// @ref SmartGraph will just refer to this structure.
    5.16 -    class StaticGraphSkeleton
    5.17 +    class StaticGraph
    5.18      {
    5.19      public:
    5.20        /// Defalult constructor.
    5.21  
    5.22        /// Defalult constructor.
    5.23        ///
    5.24 -      StaticGraphSkeleton() { }
    5.25 +      StaticGraph() { }
    5.26        ///Copy consructor.
    5.27  
    5.28  //       ///\todo It is not clear, what we expect from a copy constructor.
    5.29  //       ///E.g. How to assign the nodes/edges to each other? What about maps?
    5.30 -//       StaticGraphSkeleton(const StaticGraphSkeleton& g) { }
    5.31 +//       StaticGraph(const StaticGraph& g) { }
    5.32  
    5.33        /// The base type of node iterators, 
    5.34        /// or in other words, the trivial node iterator.
    5.35 @@ -122,14 +122,14 @@
    5.36  
    5.37  	/// Sets the iterator to the first node of \c g.
    5.38  	///
    5.39 -	NodeIt(const StaticGraphSkeleton& g) { }
    5.40 +	NodeIt(const StaticGraph& g) { }
    5.41  	/// Node -> NodeIt conversion.
    5.42  
    5.43  	/// Sets the iterator to the node of \c g pointed by the trivial 
    5.44  	/// iterator n.
    5.45  	/// This feature necessitates that each time we 
    5.46  	/// iterate the edge-set, the iteration order is the same.
    5.47 -	NodeIt(const StaticGraphSkeleton& g, const Node& n) { }
    5.48 +	NodeIt(const StaticGraph& g, const Node& n) { }
    5.49  	/// Next node.
    5.50  
    5.51  	/// Assign the iterator to the next node.
    5.52 @@ -214,13 +214,13 @@
    5.53  	/// node
    5.54  	///@param n the node
    5.55  	///@param g the graph
    5.56 -	OutEdgeIt(const StaticGraphSkeleton& g, const Node& n) { }
    5.57 +	OutEdgeIt(const StaticGraph& g, const Node& n) { }
    5.58  	/// Edge -> OutEdgeIt conversion
    5.59  
    5.60  	/// Sets the iterator to the value of the trivial iterator \c e.
    5.61  	/// This feature necessitates that each time we 
    5.62  	/// iterate the edge-set, the iteration order is the same.
    5.63 -	OutEdgeIt(const StaticGraphSkeleton& g, const Edge& e) { }
    5.64 +	OutEdgeIt(const StaticGraph& g, const Edge& e) { }
    5.65  	///Next outgoing edge
    5.66  	
    5.67  	/// Assign the iterator to the next 
    5.68 @@ -263,13 +263,13 @@
    5.69  	/// node
    5.70  	///@param n the node
    5.71  	///@param g the graph
    5.72 -	InEdgeIt(const StaticGraphSkeleton& g, const Node& n) { }
    5.73 +	InEdgeIt(const StaticGraph& g, const Node& n) { }
    5.74  	/// Edge -> InEdgeIt conversion
    5.75  
    5.76  	/// Sets the iterator to the value of the trivial iterator \c e.
    5.77  	/// This feature necessitates that each time we 
    5.78  	/// iterate the edge-set, the iteration order is the same.
    5.79 -	InEdgeIt(const StaticGraphSkeleton& g, const Edge& n) { }
    5.80 +	InEdgeIt(const StaticGraph& g, const Edge& n) { }
    5.81  	/// Next incoming edge
    5.82  
    5.83  	/// Assign the iterator to the next inedge of the corresponding node.
    5.84 @@ -307,13 +307,13 @@
    5.85  	/// This constructor set the iterator to the first edge of
    5.86  	/// node
    5.87  	///@param g the graph
    5.88 -	EdgeIt(const StaticGraphSkeleton& g) { }
    5.89 +	EdgeIt(const StaticGraph& g) { }
    5.90  	/// Edge -> EdgeIt conversion
    5.91  
    5.92  	/// Sets the iterator to the value of the trivial iterator \c e.
    5.93  	/// This feature necessitates that each time we 
    5.94  	/// iterate the edge-set, the iteration order is the same.
    5.95 -	EdgeIt(const StaticGraphSkeleton&, const Edge&) { } 
    5.96 +	EdgeIt(const StaticGraph&, const Edge&) { } 
    5.97      	///Next edge
    5.98  	
    5.99  	/// Assign the iterator to the next 
   5.100 @@ -370,29 +370,31 @@
   5.101  
   5.102        /// .
   5.103        
   5.104 -      ///\todo What is this?
   5.105 +      ///\todo Should it be in the concept?
   5.106        ///
   5.107        int nodeNum() const { return 0; }
   5.108        /// .
   5.109 -      ///\todo What is this?
   5.110 +
   5.111 +      ///\todo Should it be in the concept?
   5.112        ///
   5.113        int edgeNum() const { return 0; }
   5.114  
   5.115  
   5.116        ///Reference map of the nodes to type \c T.
   5.117  
   5.118 +      /// \ingroup skeletons
   5.119        ///Reference map of the nodes to type \c T.
   5.120 -      /// \sa ReferenceSkeleton
   5.121 +      /// \sa Reference
   5.122        /// \warning Making maps that can handle bool type (NodeMap<bool>)
   5.123        /// needs some extra attention!
   5.124 -      template<class T> class NodeMap: public ReferenceMap< Node, T >
   5.125 +      template<class T> class NodeMap : public ReferenceMap< Node, T >
   5.126        {
   5.127        public:
   5.128  
   5.129  	/// .
   5.130 -	NodeMap(const StaticGraphSkeleton&) { }
   5.131 +	NodeMap(const StaticGraph&) { }
   5.132  	/// .
   5.133 -	NodeMap(const StaticGraphSkeleton&, T) { }
   5.134 +	NodeMap(const StaticGraph&, T) { }
   5.135  
   5.136  	///Copy constructor
   5.137  	template<typename TT> NodeMap(const NodeMap<TT>&) { }
   5.138 @@ -403,8 +405,9 @@
   5.139  
   5.140        ///Reference map of the edges to type \c T.
   5.141  
   5.142 +      /// \ingroup skeletons
   5.143        ///Reference map of the edges to type \c T.
   5.144 -      /// \sa ReferenceSkeleton
   5.145 +      /// \sa Reference
   5.146        /// \warning Making maps that can handle bool type (EdgeMap<bool>)
   5.147        /// needs some extra attention!
   5.148        template<class T> class EdgeMap
   5.149 @@ -413,9 +416,9 @@
   5.150        public:
   5.151  
   5.152  	/// .
   5.153 -	EdgeMap(const StaticGraphSkeleton&) { }
   5.154 +	EdgeMap(const StaticGraph&) { }
   5.155  	/// .
   5.156 -	EdgeMap(const StaticGraphSkeleton&, T) { }
   5.157 +	EdgeMap(const StaticGraph&, T) { }
   5.158      
   5.159  	///Copy constructor
   5.160  	template<typename TT> EdgeMap(const EdgeMap<TT>&) { }
   5.161 @@ -429,17 +432,17 @@
   5.162    
   5.163      /// An empty non-static graph class.
   5.164  
   5.165 -    /// This class provides everything that \c StaticGraphSkeleton
   5.166 +    /// This class provides everything that \ref StaticGraph
   5.167      /// with additional functionality which enables to build a
   5.168      /// graph from scratch.
   5.169 -    class ExtendableGraphSkeleton : public StaticGraphSkeleton
   5.170 +    class ExtendableGraph : public StaticGraph
   5.171      {
   5.172      public:
   5.173        /// Defalult constructor.
   5.174  
   5.175        /// Defalult constructor.
   5.176        ///
   5.177 -      ExtendableGraphSkeleton() { }
   5.178 +      ExtendableGraph() { }
   5.179        ///Add a new node to the graph.
   5.180  
   5.181        /// \return the new node.
   5.182 @@ -447,31 +450,31 @@
   5.183        Node addNode() { return INVALID; }
   5.184        ///Add a new edge to the graph.
   5.185  
   5.186 -      ///Add a new edge to the graph with tail node \c tail
   5.187 -      ///and head node \c head.
   5.188 +      ///Add a new edge to the graph with tail node \c t
   5.189 +      ///and head node \c h.
   5.190        ///\return the new edge.
   5.191 -      Edge addEdge(Node, Node) { return INVALID; }
   5.192 +      Edge addEdge(Node h, Node t) { return INVALID; }
   5.193      
   5.194        /// Resets the graph.
   5.195  
   5.196        /// This function deletes all edges and nodes of the graph.
   5.197        /// It also frees the memory allocated to store them.
   5.198 -      /// \todo It might belong to \c ErasableGraphSkeleton.
   5.199 +      /// \todo It might belong to \ref ErasableGraph.
   5.200        void clear() { }
   5.201      };
   5.202  
   5.203      /// An empty erasable graph class.
   5.204    
   5.205 -    /// This class is an extension of \c GraphSkeleton. It also makes it
   5.206 +    /// This class is an extension of \ref ExtendableGraph. It also makes it
   5.207      /// possible to erase edges or nodes.
   5.208 -    class ErasableGraphSkeleton : public ExtendableGraphSkeleton
   5.209 +    class ErasableGraph : public ExtendableGraph
   5.210      {
   5.211      public:
   5.212        /// Defalult constructor.
   5.213  
   5.214        /// Defalult constructor.
   5.215        ///
   5.216 -      ErasableGraphSkeleton() { }
   5.217 +      ErasableGraph() { }
   5.218        /// Deletes a node.
   5.219  
   5.220        /// Deletes node \c n node.
     6.1 --- a/src/hugo/smart_graph.h	Fri Sep 17 15:11:39 2004 +0000
     6.2 +++ b/src/hugo/smart_graph.h	Fri Sep 17 15:51:50 2004 +0000
     6.3 @@ -30,9 +30,9 @@
     6.4    ///This is a simple and fast graph implementation.
     6.5    ///It is also quite memory efficient, but at the price
     6.6    ///that <b> it does not support node and edge deletion</b>.
     6.7 -  ///It conforms to the graph interface documented under
     6.8 -  ///the description of \ref GraphSkeleton.
     6.9 -  ///\sa \ref GraphSkeleton.
    6.10 +  ///It conforms to 
    6.11 +  ///the \ref skeleton::ExtendableGraph "ExtendableGraph" concept.
    6.12 +  ///\sa skeleton::ExtendableGraph.
    6.13    ///
    6.14    ///\todo Some member functions could be \c static.
    6.15    ///
    6.16 @@ -302,7 +302,7 @@
    6.17    ///that complements this
    6.18    ///feature by
    6.19    ///storing shared values for the edge pairs. The usual
    6.20 -  ///\ref GraphSkeleton::EdgeMap "EdgeMap"
    6.21 +  ///\ref Graph::EdgeMap "EdgeMap"
    6.22    ///can be used
    6.23    ///as well.
    6.24    ///
    6.25 @@ -310,7 +310,7 @@
    6.26    ///using \ref opposite.
    6.27    ///\warning It shares the similarity with \ref SmartGraph that
    6.28    ///it is not possible to delete edges or nodes from the graph.
    6.29 -  //\sa \ref SmartGraph.
    6.30 +  //\sa SmartGraph.
    6.31  
    6.32    class SymSmartGraph : public SmartGraph
    6.33    {
     7.1 --- a/src/test/bfs_test.cc	Fri Sep 17 15:11:39 2004 +0000
     7.2 +++ b/src/test/bfs_test.cc	Fri Sep 17 15:51:50 2004 +0000
     7.3 @@ -10,7 +10,7 @@
     7.4  
     7.5  void check_Bfs_Compile() 
     7.6  {
     7.7 -  typedef skeleton::StaticGraphSkeleton Graph;
     7.8 +  typedef skeleton::StaticGraph Graph;
     7.9  
    7.10    typedef Graph::Edge Edge;
    7.11    typedef Graph::Node Node;
     8.1 --- a/src/test/dfs_test.cc	Fri Sep 17 15:11:39 2004 +0000
     8.2 +++ b/src/test/dfs_test.cc	Fri Sep 17 15:51:50 2004 +0000
     8.3 @@ -10,7 +10,7 @@
     8.4  
     8.5  void check_Dfs_SmartGraph_Compile() 
     8.6  {
     8.7 -  typedef skeleton::StaticGraphSkeleton Graph;
     8.8 +  typedef skeleton::StaticGraph Graph;
     8.9  
    8.10    typedef Graph::Edge Edge;
    8.11    typedef Graph::Node Node;
     9.1 --- a/src/test/dijkstra_test.cc	Fri Sep 17 15:11:39 2004 +0000
     9.2 +++ b/src/test/dijkstra_test.cc	Fri Sep 17 15:51:50 2004 +0000
     9.3 @@ -11,7 +11,7 @@
     9.4  void check_Dijkstra_BinHeap_Compile() 
     9.5  {
     9.6    typedef int VType;
     9.7 -  typedef skeleton::StaticGraphSkeleton Graph;
     9.8 +  typedef skeleton::StaticGraph Graph;
     9.9  
    9.10    typedef Graph::Edge Edge;
    9.11    typedef Graph::Node Node;
    10.1 --- a/src/test/graph_test.cc	Fri Sep 17 15:11:39 2004 +0000
    10.2 +++ b/src/test/graph_test.cc	Fri Sep 17 15:51:50 2004 +0000
    10.3 @@ -51,15 +51,15 @@
    10.4    }  
    10.5  }
    10.6  
    10.7 -//Compile GraphSkeleton
    10.8 -template void hugo::checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
    10.9 -(skeleton::StaticGraphSkeleton &);
   10.10 +//Compile Graph
   10.11 +template void hugo::checkCompileStaticGraph<skeleton::StaticGraph>
   10.12 +(skeleton::StaticGraph &);
   10.13  
   10.14 -template void hugo::checkCompileGraph<skeleton::ExtendableGraphSkeleton>
   10.15 -(skeleton::ExtendableGraphSkeleton &);
   10.16 +template void hugo::checkCompileGraph<skeleton::ExtendableGraph>
   10.17 +(skeleton::ExtendableGraph &);
   10.18  
   10.19 -template void hugo::checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
   10.20 -(skeleton::ErasableGraphSkeleton &);
   10.21 +template void hugo::checkCompileErasableGraph<skeleton::ErasableGraph>
   10.22 +(skeleton::ErasableGraph &);
   10.23  
   10.24  //Compile SmartGraph
   10.25  template void hugo::checkCompileGraph<SmartGraph>(SmartGraph &);
    11.1 --- a/src/test/kruskal_test.cc	Fri Sep 17 15:11:39 2004 +0000
    11.2 +++ b/src/test/kruskal_test.cc	Fri Sep 17 15:51:50 2004 +0000
    11.3 @@ -14,10 +14,10 @@
    11.4  
    11.5  void checkCompileKruskal()
    11.6  {
    11.7 -  skeleton::WriteMap<skeleton::StaticGraphSkeleton::Edge,bool> w;
    11.8 +  skeleton::WriteMap<skeleton::StaticGraph::Edge,bool> w;
    11.9  
   11.10 -  kruskalEdgeMap(skeleton::StaticGraphSkeleton(),
   11.11 -		 skeleton::ReadMap<skeleton::StaticGraphSkeleton::Edge,int>(),
   11.12 +  kruskalEdgeMap(skeleton::StaticGraph(),
   11.13 +		 skeleton::ReadMap<skeleton::StaticGraph::Edge,int>(),
   11.14  		 w);
   11.15  }
   11.16  
    12.1 --- a/src/test/preflow_test.cc	Fri Sep 17 15:11:39 2004 +0000
    12.2 +++ b/src/test/preflow_test.cc	Fri Sep 17 15:51:50 2004 +0000
    12.3 @@ -13,7 +13,7 @@
    12.4  void check_Preflow() 
    12.5  {
    12.6    typedef int VType;
    12.7 -  typedef skeleton::StaticGraphSkeleton Graph;
    12.8 +  typedef skeleton::StaticGraph Graph;
    12.9  
   12.10    typedef Graph::Node Node;
   12.11    typedef Graph::Edge Edge;
    13.1 --- a/src/work/alpar/list_graph_demo.cc	Fri Sep 17 15:11:39 2004 +0000
    13.2 +++ b/src/work/alpar/list_graph_demo.cc	Fri Sep 17 15:51:50 2004 +0000
    13.3 @@ -7,7 +7,7 @@
    13.4  using namespace hugo;
    13.5  
    13.6  typedef ListGraph Graph;
    13.7 -//typedef GraphSkeleton Graph;
    13.8 +//typedef Graph Graph;
    13.9  
   13.10  
   13.11  Graph::OutEdgeIt safeFirstOut(const Graph &G, Graph::Node n)
    14.1 --- a/src/work/alpar/smart_graph_demo.cc	Fri Sep 17 15:11:39 2004 +0000
    14.2 +++ b/src/work/alpar/smart_graph_demo.cc	Fri Sep 17 15:51:50 2004 +0000
    14.3 @@ -7,7 +7,7 @@
    14.4  using namespace hugo;
    14.5  
    14.6  typedef SmartGraph Graph;
    14.7 -//typedef GraphSkeleton Graph;
    14.8 +//typedef Graph Graph;
    14.9  
   14.10  
   14.11  Graph::OutEdgeIt safeFirstOut(const Graph &G, Graph::Node n)
    15.1 --- a/src/work/deba/dijkstra.h	Fri Sep 17 15:11:39 2004 +0000
    15.2 +++ b/src/work/deba/dijkstra.h	Fri Sep 17 15:51:50 2004 +0000
    15.3 @@ -18,7 +18,7 @@
    15.4  
    15.5    ///This class provides an efficient implementation of %Dijkstra algorithm.
    15.6    ///The edge lengths are passed to the algorithm using a
    15.7 -  ///\ref ReadMapSkeleton "readable map",
    15.8 +  ///\ref ReadMap "readable map",
    15.9    ///so it is easy to change it to any kind of length.
   15.10    ///
   15.11    ///The type of the length is determined by the \c ValueType of the length map.
   15.12 @@ -32,7 +32,7 @@
   15.13    ///lengths of the edges. It is read once for each edge, so the map
   15.14    ///may involve in relatively time consuming process to compute the edge
   15.15    ///length if it is necessary. The default map type is
   15.16 -  ///\ref GraphSkeleton::EdgeMap "Graph::EdgeMap<int>"
   15.17 +  ///\ref Graph::EdgeMap "Graph::EdgeMap<int>"
   15.18    ///\param Heap The heap type used by the %Dijkstra
   15.19    ///algorithm. The default
   15.20    ///is using \ref BinHeap "binary heap".
    16.1 --- a/src/work/deba/list_graph.h	Fri Sep 17 15:11:39 2004 +0000
    16.2 +++ b/src/work/deba/list_graph.h	Fri Sep 17 15:51:50 2004 +0000
    16.3 @@ -27,8 +27,8 @@
    16.4    ///This is a simple and fast erasable graph implementation.
    16.5    ///
    16.6    ///It conforms to the graph interface documented under
    16.7 -  ///the description of \ref GraphSkeleton.
    16.8 -  ///\sa \ref GraphSkeleton.
    16.9 +  ///the description of \ref Graph.
   16.10 +  ///\sa \ref Graph.
   16.11    class ListGraph {
   16.12  
   16.13      //Nodes are double linked.
   16.14 @@ -382,7 +382,7 @@
   16.15    ///that complements this
   16.16    ///feature by
   16.17    ///storing shared values for the edge pairs. The usual
   16.18 -  ///\ref GraphSkeleton::EdgeMap "EdgeMap"
   16.19 +  ///\ref Graph::EdgeMap "EdgeMap"
   16.20    ///can be used
   16.21    ///as well.
   16.22    ///
    17.1 --- a/src/work/marci/experiment/graph_wrapper.h	Fri Sep 17 15:11:39 2004 +0000
    17.2 +++ b/src/work/marci/experiment/graph_wrapper.h	Fri Sep 17 15:51:50 2004 +0000
    17.3 @@ -161,7 +161,7 @@
    17.4    };
    17.5  
    17.6    template<typename GraphWrapper>
    17.7 -  class GraphWrapperSkeleton {
    17.8 +  class GraphWrapper {
    17.9    protected:
   17.10      GraphWrapper gw;
   17.11    
   17.12 @@ -184,7 +184,7 @@
   17.13        NodeIt(const typename GraphWrapper::NodeIt& n) : 
   17.14  	GraphWrapper::NodeIt(n) { }
   17.15        NodeIt(const Invalid& i) : GraphWrapper::NodeIt(i) { }
   17.16 -      NodeIt(const GraphWrapperSkeleton<GraphWrapper>& _G) : 
   17.17 +      NodeIt(const GraphWrapper<GraphWrapper>& _G) : 
   17.18  	GraphWrapper::NodeIt(_G.gw) { }
   17.19      };
   17.20      typedef typename GraphWrapper::Edge Edge;
   17.21 @@ -195,7 +195,7 @@
   17.22        OutEdgeIt(const typename GraphWrapper::OutEdgeIt& e) : 
   17.23  	GraphWrapper::OutEdgeIt(e) { }
   17.24        OutEdgeIt(const Invalid& i) : GraphWrapper::OutEdgeIt(i) { }
   17.25 -      OutEdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G, const Node& n) : 
   17.26 +      OutEdgeIt(const GraphWrapper<GraphWrapper>& _G, const Node& n) : 
   17.27  	GraphWrapper::OutEdgeIt(_G.gw, n) { }
   17.28      };
   17.29      //typedef typename GraphWrapper::InEdgeIt InEdgeIt;
   17.30 @@ -205,7 +205,7 @@
   17.31        InEdgeIt(const typename GraphWrapper::InEdgeIt& e) : 
   17.32  	GraphWrapper::InEdgeIt(e) { }
   17.33        InEdgeIt(const Invalid& i) : GraphWrapper::InEdgeIt(i) { }
   17.34 -      InEdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G, const Node& n) : 
   17.35 +      InEdgeIt(const GraphWrapper<GraphWrapper>& _G, const Node& n) : 
   17.36  	GraphWrapper::InEdgeIt(_G.gw, n) { }
   17.37      };
   17.38      //typedef typename GraphWrapper::SymEdgeIt SymEdgeIt;
   17.39 @@ -216,13 +216,13 @@
   17.40        EdgeIt(const typename GraphWrapper::EdgeIt& e) : 
   17.41  	GraphWrapper::EdgeIt(e) { }
   17.42        EdgeIt(const Invalid& i) : GraphWrapper::EdgeIt(i) { }
   17.43 -      EdgeIt(const GraphWrapperSkeleton<GraphWrapper>& _G) : 
   17.44 +      EdgeIt(const GraphWrapper<GraphWrapper>& _G) : 
   17.45  	GraphWrapper::EdgeIt(_G.gw) { }
   17.46      };
   17.47  
   17.48  
   17.49 -    //GraphWrapperSkeleton() : gw() { }
   17.50 -    GraphWrapperSkeleton(GraphWrapper _gw) : gw(_gw) { }
   17.51 +    //GraphWrapper() : gw() { }
   17.52 +    GraphWrapper(GraphWrapper _gw) : gw(_gw) { }
   17.53  
   17.54      //void setGraph(BaseGraph& _graph) { gw.setGraph(_graph); }
   17.55      //BaseGraph& getGraph() const { return gw.getGraph(); }
   17.56 @@ -269,17 +269,17 @@
   17.57      
   17.58      template<typename T> class NodeMap : public GraphWrapper::NodeMap<T> { 
   17.59      public:
   17.60 -      NodeMap(const GraphWrapperSkeleton<GraphWrapper>& _G) :  
   17.61 +      NodeMap(const GraphWrapper<GraphWrapper>& _G) :  
   17.62  	GraphWrapper::NodeMap<T>(_G.gw) { }
   17.63 -      NodeMap(const GraphWrapperSkeleton<GraphWrapper>& _G, T a) : 
   17.64 +      NodeMap(const GraphWrapper<GraphWrapper>& _G, T a) : 
   17.65  	GraphWrapper::NodeMap<T>(_G.gw, a) { }
   17.66      };
   17.67  
   17.68      template<typename T> class EdgeMap : public GraphWrapper::EdgeMap<T> { 
   17.69      public:
   17.70 -      EdgeMap(const GraphWrapperSkeleton<GraphWrapper>& _G) :  
   17.71 +      EdgeMap(const GraphWrapper<GraphWrapper>& _G) :  
   17.72  	GraphWrapper::EdgeMap<T>(_G.gw) { }
   17.73 -      EdgeMap(const GraphWrapperSkeleton<GraphWrapper>& _G, T a) : 
   17.74 +      EdgeMap(const GraphWrapper<GraphWrapper>& _G, T a) : 
   17.75  	GraphWrapper::EdgeMap<T>(_G.gw, a) { }
   17.76      };
   17.77    };
   17.78 @@ -365,9 +365,9 @@
   17.79  //   };
   17.80  
   17.81  //   template<typename /*Graph*/GraphWrapper
   17.82 -//   /*=typename GraphWrapperSkeleton< TrivGraphWrapper<Graph>*/ >
   17.83 +//   /*=typename GraphWrapper< TrivGraphWrapper<Graph>*/ >
   17.84  //   class RevGraphWrapper : 
   17.85 -//     public GraphWrapper/*GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/ {
   17.86 +//     public GraphWrapper/*GraphWrapper< TrivGraphWrapper<Graph> >*/ {
   17.87  //   protected:
   17.88  //     //Graph* graph;
   17.89      
   17.90 @@ -378,13 +378,13 @@
   17.91  //     //typedef typename Graph::NodeIt NodeIt;
   17.92    
   17.93  //     //typedef typename Graph::Edge Edge;
   17.94 -//     typedef typename GraphWrapper/*typename GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/::OutEdgeIt InEdgeIt;
   17.95 -//     typedef typename GraphWrapper/*typename GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/::InEdgeIt OutEdgeIt;
   17.96 +//     typedef typename GraphWrapper/*typename GraphWrapper< TrivGraphWrapper<Graph> >*/::OutEdgeIt InEdgeIt;
   17.97 +//     typedef typename GraphWrapper/*typename GraphWrapper< TrivGraphWrapper<Graph> >*/::InEdgeIt OutEdgeIt;
   17.98  //     //typedef typename Graph::SymEdgeIt SymEdgeIt;
   17.99  //     //typedef typename Graph::EdgeIt EdgeIt;
  17.100  
  17.101  //     //RevGraphWrapper() : graph(0) { }
  17.102 -//     RevGraphWrapper(GraphWrapper _gw/*BaseGraph& _graph*/) : GraphWrapper/*GraphWrapperSkeleton< TrivGraphWrapper<Graph> >*/(_gw/*TrivGraphWrapper<Graph>(_graph)*/) { }
  17.103 +//     RevGraphWrapper(GraphWrapper _gw/*BaseGraph& _graph*/) : GraphWrapper/*GraphWrapper< TrivGraphWrapper<Graph> >*/(_gw/*TrivGraphWrapper<Graph>(_graph)*/) { }
  17.104      
  17.105  //     //void setGraph(Graph& _graph) { graph = &_graph; }
  17.106  //     //Graph& getGraph() const { return (*graph); }
  17.107 @@ -429,30 +429,30 @@
  17.108  //     //void clear() const { graph->clear(); }
  17.109  
  17.110  //     template<typename T> class NodeMap : 
  17.111 -//       public GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T> 
  17.112 +//       public GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T> 
  17.113  //     { 
  17.114  //     public:
  17.115  //       NodeMap(const RevGraphWrapper<GraphWrapper>& _gw) : 
  17.116 -// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw) { }
  17.117 +// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw) { }
  17.118  //       NodeMap(const RevGraphWrapper<GraphWrapper>& _gw, T a) : 
  17.119 -// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw, a) { }
  17.120 +// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::NodeMap<T>(_gw, a) { }
  17.121  //     };
  17.122      
  17.123  //     template<typename T> class EdgeMap : 
  17.124 -//       public GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T> { 
  17.125 +//       public GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T> { 
  17.126  //     public:
  17.127  //       EdgeMap(const RevGraphWrapper<GraphWrapper>& _gw) : 
  17.128 -// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw) { }
  17.129 +// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw) { }
  17.130  //       EdgeMap(const RevGraphWrapper<GraphWrapper>& _gw, T a) : 
  17.131 -// 	GraphWrapper/*Skeleton< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw, a) { }
  17.132 +// 	GraphWrapper/*< TrivGraphWrapper<Graph> >*/::EdgeMap<T>(_gw, a) { }
  17.133  //     };
  17.134  //   };
  17.135  
  17.136    template<typename GraphWrapper>
  17.137 -  class RevGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
  17.138 +  class RevGraphWrapper : public GraphWrapper<GraphWrapper> {
  17.139    public:
  17.140 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
  17.141 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
  17.142 +    typedef typename GraphWrapper<GraphWrapper>::Node Node;
  17.143 +    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
  17.144      //FIXME 
  17.145      //If GraphWrapper::OutEdgeIt is not defined
  17.146      //and we do not want to use RevGraphWrapper::InEdgeIt,
  17.147 @@ -461,33 +461,33 @@
  17.148      //graphs have to define their non-existing iterators to void
  17.149      //Unfortunately all the typedefs are instantiated in templates, 
  17.150      //unlike other stuff
  17.151 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt InEdgeIt;
  17.152 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt OutEdgeIt;
  17.153 +    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt InEdgeIt;
  17.154 +    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt OutEdgeIt;
  17.155  
  17.156      RevGraphWrapper(GraphWrapper _gw) : 
  17.157 -      GraphWrapperSkeleton<GraphWrapper>(_gw) { }  
  17.158 +      GraphWrapper<GraphWrapper>(_gw) { }  
  17.159  
  17.160      Node head(const Edge& e) const 
  17.161 -      { return GraphWrapperSkeleton<GraphWrapper>::tail(e); }
  17.162 +      { return GraphWrapper<GraphWrapper>::tail(e); }
  17.163      Node tail(const Edge& e) const 
  17.164 -      { return GraphWrapperSkeleton<GraphWrapper>::head(e); }
  17.165 +      { return GraphWrapper<GraphWrapper>::head(e); }
  17.166    };
  17.167  
  17.168    //Subgraph on the same node-set and partial edge-set
  17.169    template<typename GraphWrapper, typename EdgeFilterMap>
  17.170 -  class SubGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
  17.171 +  class SubGraphWrapper : public GraphWrapper<GraphWrapper> {
  17.172    protected:
  17.173      EdgeFilterMap* filter_map;
  17.174    public:
  17.175 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
  17.176 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
  17.177 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
  17.178 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::EdgeIt EdgeIt;
  17.179 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt InEdgeIt;
  17.180 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt OutEdgeIt;
  17.181 +    typedef typename GraphWrapper<GraphWrapper>::Node Node;
  17.182 +    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
  17.183 +    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
  17.184 +    typedef typename GraphWrapper<GraphWrapper>::EdgeIt EdgeIt;
  17.185 +    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt InEdgeIt;
  17.186 +    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt OutEdgeIt;
  17.187  
  17.188      SubGraphWrapper(GraphWrapper _gw, EdgeFilterMap& _filter_map) : 
  17.189 -      GraphWrapperSkeleton<GraphWrapper>(_gw), filter_map(&_filter_map) { }  
  17.190 +      GraphWrapper<GraphWrapper>(_gw), filter_map(&_filter_map) { }  
  17.191  
  17.192      template<typename I> I& first(I& i) const { 
  17.193        gw.first(i); 
  17.194 @@ -677,30 +677,30 @@
  17.195  
  17.196  
  17.197    template<typename GraphWrapper>
  17.198 -  class UndirGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
  17.199 +  class UndirGraphWrapper : public GraphWrapper<GraphWrapper> {
  17.200    protected:
  17.201  //    GraphWrapper gw;
  17.202  
  17.203    public:
  17.204      //typedef GraphWrapper BaseGraph;
  17.205  
  17.206 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
  17.207 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
  17.208 +    typedef typename GraphWrapper<GraphWrapper>::Node Node;
  17.209 +    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
  17.210  
  17.211      //private:
  17.212      //FIXME ezeknek valojaban a GraphWrapper megfelelo dolgai kellene hogy 
  17.213      //legyenek, at kell irni
  17.214 -    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
  17.215 +    typedef typename /*GraphWrapper<GraphWrapper>*/
  17.216      GraphWrapper::Edge GraphEdge;
  17.217 -    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/ 
  17.218 +    typedef typename /*GraphWrapper<GraphWrapper>*/ 
  17.219      GraphWrapper::OutEdgeIt GraphOutEdgeIt;
  17.220 -    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/ 
  17.221 +    typedef typename /*GraphWrapper<GraphWrapper>*/ 
  17.222      GraphWrapper::InEdgeIt GraphInEdgeIt;
  17.223      //public:
  17.224  
  17.225      //UndirGraphWrapper() : graph(0) { }
  17.226      UndirGraphWrapper(GraphWrapper _gw) : 
  17.227 -      GraphWrapperSkeleton<GraphWrapper>(_gw) { }  
  17.228 +      GraphWrapper<GraphWrapper>(_gw) { }  
  17.229  
  17.230      //UndirGraphWrapper(GraphWrapper _gw) : gw(_gw) { }
  17.231  
  17.232 @@ -864,10 +864,10 @@
  17.233  //     };
  17.234  
  17.235  //     template<typename T> class EdgeMap : 
  17.236 -//       public GraphWrapperSkeleton<GraphWrapper>::EdgeMap<T> { 
  17.237 +//       public GraphWrapper<GraphWrapper>::EdgeMap<T> { 
  17.238  //     public:
  17.239  //       EdgeMap(const UndirGraphWrapper<GraphWrapper>& _G) : 
  17.240 -// 	GraphWrapperSkeleton<GraphWrapper>::EdgeMap<T>(_G.gw) { }
  17.241 +// 	GraphWrapper<GraphWrapper>::EdgeMap<T>(_G.gw) { }
  17.242  //       EdgeMap(const UndirGraphWrapper<GraphWrapper>& _G, T a) : 
  17.243  // 	GraphWrapper::EdgeMap<T>(_G.gw, a) { }
  17.244  //     };
  17.245 @@ -947,16 +947,16 @@
  17.246  
  17.247  
  17.248    template<typename GraphWrapper, typename Number, typename FlowMap, typename CapacityMap>
  17.249 -  class ResGraphWrapper : public GraphWrapperSkeleton<GraphWrapper>{
  17.250 +  class ResGraphWrapper : public GraphWrapper<GraphWrapper>{
  17.251    public:
  17.252      //typedef Graph BaseGraph;
  17.253      //typedef TrivGraphWrapper<const Graph> GraphWrapper;
  17.254 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
  17.255 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
  17.256 +    typedef typename GraphWrapper<GraphWrapper>::Node Node;
  17.257 +    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
  17.258    private:
  17.259 -    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
  17.260 +    typedef typename /*GraphWrapper<GraphWrapper>*/
  17.261      GraphWrapper::OutEdgeIt OldOutEdgeIt;
  17.262 -    typedef typename /*GraphWrapperSkeleton<GraphWrapper>*/
  17.263 +    typedef typename /*GraphWrapper<GraphWrapper>*/
  17.264      GraphWrapper::InEdgeIt OldInEdgeIt;
  17.265    protected:
  17.266      //const Graph* graph;
  17.267 @@ -967,7 +967,7 @@
  17.268  
  17.269      ResGraphWrapper(const GraphWrapper& _gw, FlowMap& _flow, 
  17.270  		    const CapacityMap& _capacity) : 
  17.271 -      GraphWrapperSkeleton<GraphWrapper>(_gw), 
  17.272 +      GraphWrapper<GraphWrapper>(_gw), 
  17.273        flow(&_flow), capacity(&_capacity) { }
  17.274  
  17.275      //void setGraph(const Graph& _graph) { graph = &_graph; }
  17.276 @@ -1264,19 +1264,19 @@
  17.277  
  17.278    //Subgraph on the same node-set and partial edge-set
  17.279    template<typename GraphWrapper, typename FirstOutEdgesMap>
  17.280 -  class ErasingFirstGraphWrapper : public GraphWrapperSkeleton<GraphWrapper> {
  17.281 +  class ErasingFirstGraphWrapper : public GraphWrapper<GraphWrapper> {
  17.282    protected:
  17.283      FirstOutEdgesMap* first_out_edges;
  17.284    public:
  17.285 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Node Node;
  17.286 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::NodeIt NodeIt;
  17.287 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::Edge Edge;
  17.288 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::EdgeIt EdgeIt;
  17.289 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::InEdgeIt InEdgeIt;
  17.290 -    typedef typename GraphWrapperSkeleton<GraphWrapper>::OutEdgeIt OutEdgeIt;
  17.291 +    typedef typename GraphWrapper<GraphWrapper>::Node Node;
  17.292 +    typedef typename GraphWrapper<GraphWrapper>::NodeIt NodeIt;
  17.293 +    typedef typename GraphWrapper<GraphWrapper>::Edge Edge;
  17.294 +    typedef typename GraphWrapper<GraphWrapper>::EdgeIt EdgeIt;
  17.295 +    typedef typename GraphWrapper<GraphWrapper>::InEdgeIt InEdgeIt;
  17.296 +    typedef typename GraphWrapper<GraphWrapper>::OutEdgeIt OutEdgeIt;
  17.297  
  17.298      ErasingFirstGraphWrapper(GraphWrapper _gw, FirstOutEdgesMap& _first_out_edges) : 
  17.299 -      GraphWrapperSkeleton<GraphWrapper>(_gw), first_out_edges(&_first_out_edges) { }  
  17.300 +      GraphWrapper<GraphWrapper>(_gw), first_out_edges(&_first_out_edges) { }  
  17.301  
  17.302      template<typename I> I& first(I& i) const { 
  17.303        gw.first(i); 
    18.1 --- a/src/work/marci/experiment/graph_wrapper_1.h	Fri Sep 17 15:11:39 2004 +0000
    18.2 +++ b/src/work/marci/experiment/graph_wrapper_1.h	Fri Sep 17 15:51:50 2004 +0000
    18.3 @@ -758,10 +758,10 @@
    18.4  //     };
    18.5  
    18.6  //     template<typename T> class EdgeMap : 
    18.7 -//       public GraphWrapperSkeleton<Graph>::EdgeMap<T> { 
    18.8 +//       public GraphWrapper<Graph>::EdgeMap<T> { 
    18.9  //     public:
   18.10  //       EdgeMap(const UndirGraphWrapper<Graph>& _G) : 
   18.11 -// 	GraphWrapperSkeleton<Graph>::EdgeMap<T>(_G.gw) { }
   18.12 +// 	GraphWrapper<Graph>::EdgeMap<T>(_G.gw) { }
   18.13  //       EdgeMap(const UndirGraphWrapper<Graph>& _G, T a) : 
   18.14  // 	Graph::EdgeMap<T>(_G.gw, a) { }
   18.15  //     };
    19.1 --- a/src/work/peter/edgepathgraph.h	Fri Sep 17 15:11:39 2004 +0000
    19.2 +++ b/src/work/peter/edgepathgraph.h	Fri Sep 17 15:51:50 2004 +0000
    19.3 @@ -296,7 +296,7 @@
    19.4      ///Read/write/reference map of the nodes to type \c T.
    19.5  
    19.6      ///Read/write/reference map of the nodes to type \c T.
    19.7 -    /// \sa MemoryMapSkeleton
    19.8 +    /// \sa MemoryMap
    19.9      /// \todo We may need copy constructor
   19.10      /// \todo We may need conversion from other nodetype
   19.11      /// \todo We may need operator=
   19.12 @@ -337,7 +337,7 @@
   19.13      ///Read/write/reference map of the edges to type \c T.
   19.14      ///It behaves exactly in the same way as \ref NodeMap.
   19.15      /// \sa NodeMap
   19.16 -    /// \sa MemoryMapSkeleton
   19.17 +    /// \sa MemoryMap
   19.18      /// \todo We may need copy constructor
   19.19      /// \todo We may need conversion from other edgetype
   19.20      /// \todo We may need operator=
   19.21 @@ -374,7 +374,7 @@
   19.22    /// run properly, of course.
   19.23    ///
   19.24    /// \todo This blabla could be replaced by a sepatate description about
   19.25 -  /// Skeletons.
   19.26 +  /// s.
   19.27    ///
   19.28    /// It can be used for checking the interface compatibility,
   19.29    /// or it can serve as a skeleton of a new graph structure.
    20.1 --- a/src/work/peter/hierarchygraph.h	Fri Sep 17 15:11:39 2004 +0000
    20.2 +++ b/src/work/peter/hierarchygraph.h	Fri Sep 17 15:51:50 2004 +0000
    20.3 @@ -423,7 +423,7 @@
    20.4      ///Read/write/reference map of the nodes to type \c T.
    20.5  
    20.6      ///Read/write/reference map of the nodes to type \c T.
    20.7 -    /// \sa MemoryMapSkeleton
    20.8 +    /// \sa MemoryMap
    20.9      /// \todo We may need copy constructor
   20.10      /// \todo We may need conversion from other nodetype
   20.11      /// \todo We may need operator=
   20.12 @@ -482,7 +482,7 @@
   20.13      ///Read/write/reference map of the edges to type \c T.
   20.14      ///It behaves exactly in the same way as \ref NodeMap.
   20.15      /// \sa NodeMap
   20.16 -    /// \sa MemoryMapSkeleton
   20.17 +    /// \sa MemoryMap
   20.18      /// \todo We may need copy constructor
   20.19      /// \todo We may need conversion from other edgetype
   20.20      /// \todo We may need operator=
   20.21 @@ -537,7 +537,7 @@
   20.22    /// run properly, of course.
   20.23    ///
   20.24    /// \todo This blabla could be replaced by a sepatate description about
   20.25 -  /// Skeletons.
   20.26 +  /// s.
   20.27    ///
   20.28    /// It can be used for checking the interface compatibility,
   20.29    /// or it can serve as a skeleton of a new graph structure.