Index: src/work/alpar/emptygraph.h
===================================================================
--- src/work/alpar/emptygraph.h	(revision 165)
+++ src/work/alpar/emptygraph.h	(revision 174)
@@ -1,3 +1,5 @@
-// -*-mode: c++; -*-
+// -*- c++ -*-
+#ifndef EMPTYGRAPH_H
+#define EMPTYGRAPH_H
 
 #include <invalid.h>
@@ -35,5 +37,5 @@
       Node() {}   //FIXME
       /// Initialize the iterator to be invalid
-      Node(Invalid) {};
+      Node(Invalid) {}
       //Node(const Node &) {} 
       bool operator==(Node n) const { return true; } //FIXME
@@ -48,5 +50,5 @@
       NodeIt() {} //FIXME
       /// Initialize the iterator to be invalid
-      NodeIt(Invalid) {};
+      NodeIt(Invalid) {}
       /// Sets the iterator to the first node of \c G.
       NodeIt(const EmptyGraph &G) {}
@@ -62,5 +64,5 @@
       Edge() {}   //FIXME
       /// Initialize the iterator to be invalid
-      Edge(Invalid) {};
+      Edge(Invalid) {}
       //Edge(const Edge &) {} 
       bool operator==(Edge n) const { return true; } //FIXME
@@ -76,5 +78,5 @@
       OutEdgeIt() {}
       /// Initialize the iterator to be invalid
-      OutEdgeIt(Invalid) {};
+      OutEdgeIt(Invalid) {}
       /// This constructor sets the iterator to first outgoing edge.
     
@@ -92,5 +94,5 @@
       InEdgeIt() {}
       /// Initialize the iterator to be invalid
-      InEdgeIt(Invalid) {};
+      InEdgeIt(Invalid) {}
       InEdgeIt(const EmptyGraph &, Node) {}    
     };
@@ -102,5 +104,5 @@
       EdgeIt() {}
       /// Initialize the iterator to be invalid
-      EdgeIt(Invalid) {};
+      EdgeIt(Invalid) {}
       EdgeIt(const EmptyGraph &) {}
     };
@@ -150,12 +152,12 @@
 
     /// Checks if a node iterator is valid
-    bool valid(const Node) const { return true;};
+    bool valid(const Node) const { return true;}
     /// Checks if an edge iterator is valid
-    bool valid(const Edge) const { return true;};
+    bool valid(const Edge) const { return true;}
 
     ///Gives back the \e id of a node.
-    int id(const Node) const { return 0;};
+    int id(const Node) const { return 0;}
     ///Gives back the \e id of an edge.
-    int id(const Edge) const { return 0;};
+    int id(const Edge) const { return 0;}
 
     //void setInvalid(Node &) const {};
@@ -173,6 +175,6 @@
     int edgeNum() { return 0;}
 
-    EmptyGraph() {};
-    EmptyGraph(const EmptyGraph &G) {};
+    EmptyGraph() {}
+    EmptyGraph(const EmptyGraph &G) {}
   
   
@@ -218,5 +220,5 @@
   // @}
 
-};
+} //namespace hugo
 
 
@@ -237,2 +239,4 @@
 
 // }
+
+#endif // EMPTYGRAPH_H
Index: src/work/alpar/smart_graph.h
===================================================================
--- src/work/alpar/smart_graph.h	(revision 164)
+++ src/work/alpar/smart_graph.h	(revision 174)
@@ -97,10 +97,12 @@
     Node head(Edge e) const { return edges[e.n].head; }
 
-//     Node aNode(const OutEdgeIt& e) const { return tail(e); }
-//     Node aNode(const InEdgeIt& e) const { return head(e); }
+    // Marci
+    Node aNode(OutEdgeIt e) const { return edges[e.n].tail; }
+    Node aNode(InEdgeIt e) const { return edges[e.n].head; }
 //     //Node aNode(const SymEdge& e) const { return e.aNode(); }
 
-//     Node bNode(const OutEdgeIt& e) const { return head(e); }
-//     Node bNode(const InEdgeIt& e) const { return tail(e); }
+    // Marci
+    Node bNode(OutEdgeIt e) const { return edges[e.n].head; }
+    Node bNode(InEdgeIt e) const { return edges[e.n].tail; }
 //     //Node bNode(const SymEdge& e) const { return e.bNode(); }
 
@@ -117,5 +119,6 @@
     It first() const { 
       It e;
-      getFirst(e);
+      //Marci
+      /*getF*/first(e);
       return e; 
     }
@@ -124,5 +127,6 @@
     It first(Node v) const { 
       It e;
-      getFirst(e, v);
+      //Marci
+      /*getF*/first(e, v);
       return e; 
     }
@@ -139,5 +143,10 @@
     //{ It tmp; tmp.n=it.n+1; return tmp; }
 
-    Node& next(Node& it) const { it.n=(it.n+2)%nodes.size()-1; return it; }
+    //FIXME correction Marci: I changed to NodeIt from Node
+    //NodeIt& next(NodeIt& it) const { it.n=(it.n+2)%nodes.size()-1; return it; }
+    NodeIt& next(NodeIt& it) const { 
+      it.n=(it.n+2)%(nodes.size()+1)-1; 
+      return it; 
+    }
     OutEdgeIt& next(OutEdgeIt& it) const
     { it.n=edges[it.n].next_out; return it; }
@@ -217,5 +226,6 @@
     public:
       Edge() { }
-      Edge (Invalid i) { n=-1; }
+      // Marci: kiszedtem az Invalid i-bol az i-t 
+      Edge (Invalid) { n=-1; }
       bool operator==(const Edge i) const {return n==i.n;}
       bool operator!=(const Edge i) const {return n!=i.n;}
