Example #1
0
 public void Run <TTree>(TTree tree) where TTree : ITree <TNode>
 {
     //_toVisit.Enqueue(tree);
     _toVisit.Put(tree);
     while (_toVisit.Any() && _stopSearch == false)
     {
         //var current = _toVisit.Dequeue();
         var current = _toVisit.Pull();
         var node    = current.Node;
         Enter(current);
         FollowChildrenIfNeeded(current);
     }
     while (_lastEntered != default(ITree <TNode>))
     {
         _nodeVisitor.OnLeave(_lastEntered, this);
         _lastEntered = _lastEntered.Parent;
     }
 }