src/work/sage_graph.h
changeset 774 4297098d9677
parent 642 e812963087f0
child 921 818510fa3d99
     1.1 --- a/src/work/sage_graph.h	Wed Aug 25 18:55:57 2004 +0000
     1.2 +++ b/src/work/sage_graph.h	Mon Aug 30 12:01:47 2004 +0000
     1.3 @@ -9,12 +9,12 @@
     1.4  
     1.5  namespace hugo {
     1.6  
     1.7 -  template <typename It>
     1.8 -  int count(It it) { 
     1.9 -    int i=0;
    1.10 -    for( ; it.valid(); ++it) { ++i; } 
    1.11 -    return i;
    1.12 -  }
    1.13 +//   template <typename It>
    1.14 +//   int count(It it) { 
    1.15 +//     int i=0;
    1.16 +//     for( ; it.valid(); ++it) { ++i; } 
    1.17 +//     return i;
    1.18 +//   }
    1.19  
    1.20    class SageGraph {
    1.21      struct node_item;
    1.22 @@ -385,11 +385,13 @@
    1.23        //protected:
    1.24      public: //for everybody but marci
    1.25        NodeIt(const SageGraph& G) : Node(G._first_node) { }
    1.26 +      NodeIt(const SageGraph& G, const Node& n) : Node(n) { } 
    1.27      public:
    1.28        NodeIt() : Node() { }
    1.29        NodeIt(const Invalid& i) : Node(i) { }
    1.30      protected:
    1.31        NodeIt(node_item* v) : Node(v) { }
    1.32 +    public:
    1.33        NodeIt& operator++() { node=node->_next_node; return *this; }
    1.34        //FIXME::
    1.35        //      NodeIt& operator=(const Node& e)
    1.36 @@ -425,18 +427,18 @@
    1.37      
    1.38      class EdgeIt : public Edge {
    1.39        friend class SageGraph;
    1.40 -      //protected: 
    1.41 -    public: //for alpar
    1.42 +    public:
    1.43 +      EdgeIt() : Edge() { }
    1.44 +      EdgeIt(const Invalid& i) : Edge(i) { }
    1.45        EdgeIt(const SageGraph& G) {
    1.46  	node_item* v=G._first_node;
    1.47  	if (v) edge=v->_first_out_edge; else edge=0;
    1.48  	while (v && !edge) { v=v->_next_node; if (v) edge=v->_first_out_edge; }
    1.49        }
    1.50 +      EdgeIt(const SageGraph& G, const Edge& e) : Edge(e) { }
    1.51 +//     protected:
    1.52 +//       EdgeIt(edge_item* _e) : Edge(_e) { }
    1.53      public:
    1.54 -      EdgeIt() : Edge() { }
    1.55 -      EdgeIt(const Invalid& i) : Edge(i) { }
    1.56 -    protected:
    1.57 -      EdgeIt(edge_item* _e) : Edge(_e) { }
    1.58        EdgeIt& operator++() { 
    1.59  	node_item* v=edge->_tail;
    1.60  	edge=edge->_next_out; 
    1.61 @@ -447,15 +449,11 @@
    1.62      
    1.63      class OutEdgeIt : public Edge {
    1.64        friend class SageGraph;
    1.65 -      //node_item* v;
    1.66 -      //protected: 
    1.67 -    protected: //for alpar
    1.68 -      OutEdgeIt(const Node& _v) /*: v(_v.node)*/ { edge=_v.node->_first_out_edge; }
    1.69      public:
    1.70 -      OutEdgeIt() : Edge()/*, v(0)*/ { }
    1.71 +      OutEdgeIt() : Edge() { }
    1.72        OutEdgeIt(const Invalid& i) : Edge(i) { }
    1.73 -      OutEdgeIt(const SageGraph&, Node _v) /*: v(_v.node)*/ { edge=_v.node->_first_out_edge; }
    1.74 -    protected:
    1.75 +      OutEdgeIt(const SageGraph&, Node _v) : Edge(_v.node->_first_out_edge) { }
    1.76 +      OutEdgeIt(const SageGraph&, const Edge& e) : Edge(e) { }
    1.77        OutEdgeIt& operator++() { edge=edge->_next_out; return *this; }
    1.78      protected:
    1.79        Node aNode() const { return Node(edge->_tail); }
    1.80 @@ -464,15 +462,11 @@
    1.81      
    1.82      class InEdgeIt : public Edge {
    1.83        friend class SageGraph;
    1.84 -      //node_item* v;
    1.85 -      //protected:
    1.86 -    protected: //for alpar
    1.87 -      InEdgeIt(const Node& _v) /*: v(_v.node)*/ { edge=_v.node->_first_in_edge; }
    1.88      public:
    1.89 -      InEdgeIt() : Edge()/*, v(0)*/ { }
    1.90 -      InEdgeIt(const Invalid& i) : Edge(i) { }
    1.91 -      InEdgeIt(const SageGraph&, Node _v) /*: v(_v.node)*/ { edge=_v.node->_first_in_edge; }
    1.92 -    protected:
    1.93 +      InEdgeIt() : Edge() { }
    1.94 +      InEdgeIt(Invalid i) : Edge(i) { }
    1.95 +      InEdgeIt(const SageGraph&, Node _v) : Edge(_v.node->_first_in_edge) { }
    1.96 +      InEdgeIt(const SageGraph&, const Edge& e) : Edge(e) { }
    1.97        InEdgeIt& operator++() { edge=edge->_next_in; return *this; }
    1.98      protected:
    1.99        Node aNode() const { return Node(edge->_head); }