Bruce Barr wrote:
> Here's a patch to depth_first_search.hpp in BGL in version 1.30.0 of boost
> that implements nonrecursive depth first search.  This reduces or
> eliminates the problem of stack overflow that occurs with DFS in large
> graphs.  There also may be a performance gain in some cases.  If anyone has
> a test suite for BGL I'd love to hear the results.  Otherwise, it works
> exactly the same. The event points
> are all the same.

Just like Doug,
I think this patch is desirable. But I also think that a little bit of 
additional work is required from Bruce ;-)

At least for me, the algorithm is not 100% clear. When I first say the

  while(ei != ee) {
  }

loop, I though "huh, iteration over all out-edges?" and when I saw:

   vis.finish_vertex(u, g);

I though, "huh, we're only pushed adjacent vertices to stack, why do we call 
finish_vertex". Both problems arise from the fact that ei and u are modified 
in case adjacent vertex is white. I think to avoid confusion in future, 
comment describing what's going on is in order.

- Volodya

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to