public CycleCounterSingleThreaded(INeighbourshipContainer container)
 {
     _container = container;
     _verticesCount = _container.Size;
     _marked = new bool[_verticesCount];
     for (int i = 0; i < _verticesCount; ++i)
     {
         unmark(i);
     }
     _stack = new Stack<int>();
     _path = new Stack<int>();
 }
 public CycleCounterParallel(INeighbourshipContainer container)
 {
     _container = container;
     _verticesCount = _container.Size;
     _counters = new PivotsCycleCounter[_verticesCount];
 }
 public PivotsCycleCounter(IThreadEvent handler, INeighbourshipContainer container, 
     int pivot, int cycleLength)
 {
     _handler = handler;
     _container = container;
     _pivot = pivot;
     _cycleLength = cycleLength;
 }