/// <summary>
 /// Constructor
 /// </summary>
 /// <param name="graph">The given graph</param>
 /// <param name="freeze">This parameter determines if the iteration will happen on the given graph or a clone of it. In case the graph is changing during the iteration and the objective is to iterate on the initial graph then set freeze to true</param>
 public CIt_GraphNodes(CGraph graph, bool freeze = false)
 {
     if (!freeze)
     {
         m_graph = graph;
     }
     else
     {
         // Iteration happens on the clone which can't be changed externally
         m_graph = CGraph.TemporalClone(graph);
         // The graph that is given from externally and can be change
         // during iteration
         m_initialGraph = graph;
     }
 }