src/work/list_graph.hh
changeset 92 a7f9e2fda93a
parent 90 6a14044089d9
child 94 90a35f45fa6a
equal deleted inserted replaced
8:89a5fbc4e37b 9:f0ee345e8d05
   359 
   359 
   360       friend class EdgeIt;
   360       friend class EdgeIt;
   361       friend class OutEdgeIt;
   361       friend class OutEdgeIt;
   362       friend class InEdgeIt;
   362       friend class InEdgeIt;
   363       friend class SymEdgeIt;
   363       friend class SymEdgeIt;
       
   364     public:  //FIXME: It is required by op= of EachNodeIt
       
   365       node_item* node;
   364     protected:
   366     protected:
   365       node_item* node;
       
   366       friend int ListGraph::id(NodeIt v) const; 
   367       friend int ListGraph::id(NodeIt v) const; 
   367     public:
   368     public:
   368       NodeIt() : node(0) { }
   369       NodeIt() : node(0) { }
   369       NodeIt(node_item* _node) : node(_node) { }
   370       NodeIt(node_item* _node) : node(_node) { }
   370       bool valid() const { return (node!=0); }
   371       bool valid() const { return (node!=0); }
   379     };
   380     };
   380     
   381     
   381     class EachNodeIt : public NodeIt {
   382     class EachNodeIt : public NodeIt {
   382       friend class ListGraph;
   383       friend class ListGraph;
   383       //protected:
   384       //protected:
   384     public: //for alpar
   385     public: //for everybody but marci
   385       EachNodeIt(const ListGraph& G) : NodeIt(G._first_node) { }
   386       EachNodeIt(const ListGraph& G) : NodeIt(G._first_node) { }
   386     public:
   387     public:
   387       EachNodeIt() : NodeIt() { }
   388       EachNodeIt() : NodeIt() { }
   388       EachNodeIt(node_item* v) : NodeIt(v) { }
   389       EachNodeIt(node_item* v) : NodeIt(v) { }
   389       EachNodeIt& operator++() { node=node->_next_node; return *this; }
   390       EachNodeIt& operator++() { node=node->_next_node; return *this; }
       
   391       //FIXME::
       
   392       EachNodeIt& operator=(const NodeIt& e)
       
   393       { node=e.node; return *this; }
   390     };
   394     };
   391 
   395 
   392     class EdgeIt {
   396     class EdgeIt {
   393       friend class ListGraph;
   397       friend class ListGraph;
   394       template <typename T> friend class EdgeMap;
   398       template <typename T> friend class EdgeMap;