*** depth_first_search.html.orig	Mon Aug 19 17:16:15 2002
--- depth_first_search.html	Sun Aug 31 18:18:39 2003
***************
*** 27,43 ****
  <PRE>
  <i>// named parameter version</i>
  template &lt;class Graph, class class P, class T, class R&gt;
! void depth_first_search(Graph&amp; G,
    const bgl_named_params&lt;P, T, R&gt;&amp; params);
  
  <i>// non-named parameter version</i>
  template &lt;class Graph, class <a href="DFSVisitor.html">DFSVisitor</a>, class ColorMap&gt;
  void depth_first_search(const Graph&amp; g, DFSVisitor vis, ColorMap color)
  
! template &lt;class Graph, class <a href="DFSVisitor.html">DFSVisitor</a>, class ColorMap&gt;
  void depth_first_search(const Graph&amp; g, DFSVisitor vis, ColorMap color, 
!                         typename graph_traits&lt;Graph&gt;::vertex_descriptor start)
  
  </PRE>
  
  <p>
--- 27,47 ----
  <PRE>
  <i>// named parameter version</i>
  template &lt;class Graph, class class P, class T, class R&gt;
! void depth_first_search(const Graph&amp; g,
    const bgl_named_params&lt;P, T, R&gt;&amp; params);
  
  <i>// non-named parameter version</i>
  template &lt;class Graph, class <a href="DFSVisitor.html">DFSVisitor</a>, class ColorMap&gt;
  void depth_first_search(const Graph&amp; g, DFSVisitor vis, ColorMap color)
  
! template &lt;class Graph, class <a href="DFSVisitor.html">DFSVisitor</a>, class ColorMap, class Vertex&gt;
  void depth_first_search(const Graph&amp; g, DFSVisitor vis, ColorMap color, 
!                         Vertex start)
  
+ template &lt;class Graph, class <a href="DFSVisitor.html">DFSVisitor</a>, class ColorMap, class Vertex,
+           class <a href="./Buffer.html">Buffer</a>&gt;
+ void depth_first_search(const Graph&amp; g, DFSVisitor vis, ColorMap color,
+                         Vertex start, Buffer&amp; S)
  </PRE>
  
  <p>
***************
*** 61,67 ****
  Similar to BFS, color markers are used to keep track of which vertices
  have been discovered. White marks vertices that have yet to be
  discovered, gray marks a vertex that is discovered but still has
! vertices adjacent to it that are undiscovered. A black vertex is
  discovered vertex that is not adjacent to any white vertices.
  <p>
  
--- 65,71 ----
  Similar to BFS, color markers are used to keep track of which vertices
  have been discovered. White marks vertices that have yet to be
  discovered, gray marks a vertex that is discovered but still has
! vertices adjacent to it that are undiscovered. A black vertex is a
  discovered vertex that is not adjacent to any white vertices.
  <p>
  
***************
*** 70,76 ****
  actions at certain event-points within the algorithm. This provides a
  mechanism for adapting the generic DFS algorithm to the many
  situations in which it can be used.  In the pseudo-code below, the
! event points for DFS are indicated in by the triangles and labels on
  the right. The user-defined actions must be provided in the form of a
  visitor object, that is, an object whose type meets the requirements
  for a <a href="./DFSVisitor.html">DFS Visitor</a>. In the pseudo-code
--- 74,80 ----
  actions at certain event-points within the algorithm. This provides a
  mechanism for adapting the generic DFS algorithm to the many
  situations in which it can be used.  In the pseudo-code below, the
! event points for DFS are indicated by the triangles and labels on
  the right. The user-defined actions must be provided in the form of a
  visitor object, that is, an object whose type meets the requirements
  for a <a href="./DFSVisitor.html">DFS Visitor</a>. In the pseudo-code
***************
*** 114,120 ****
    <b>end for</b>
    <i>color[u] :=</i> BLACK
    <i>f_time[u] := time := time + 1</i> 
! <pre>
  </td>
  <td valign="top">
  <pre>
--- 118,124 ----
    <b>end for</b>
    <i>color[u] :=</i> BLACK
    <i>f_time[u] := time := time + 1</i> 
! </pre>
  </td>
  <td valign="top">
  <pre>
***************
*** 160,166 ****
  
  <h3>Parameters</h3>
  
! IN: <tt>Graph&amp; g</tt>
  <blockquote>
    A directed graph. The graph type must
    be a model of <a href="./IncidenceGraph.html">Incidence Graph</a>
--- 164,170 ----
  
  <h3>Parameters</h3>
  
! IN: <tt>const Graph&amp; g</tt>
  <blockquote>
    A directed graph. The graph type must
    be a model of <a href="./IncidenceGraph.html">Incidence Graph</a>
***************
*** 168,173 ****
--- 172,184 ----
  </blockquote>
  
  
+ IN: <tt>Vertex start</tt>
+ <blockquote>
+   This specifies the vertex that the depth-first search should
+   originate from. The vertex type must be
+   <tt>graph_traits&lt;Graph&gt;::vertex_descriptor</tt>.
+ </blockquote>
+ 
  <h3>Named Parameters</h3>
  
  IN: <tt>visitor(DFSVisitor vis)</tt>
***************
*** 196,202 ****
  </blockquote>
  
  IN: <tt>root_vertex(typename
! graph_traits&lt;VertexListGraph&gt;::vertex_descriptor start)</tt>
  <blockquote>
    This specifies the vertex that the depth-first search should
    originate from. The type is the type of a vertex descriptor for the
--- 207,213 ----
  </blockquote>
  
  IN: <tt>root_vertex(typename
! graph_traits&lt;Graph&gt;::vertex_descriptor start)</tt>
  <blockquote>
    This specifies the vertex that the depth-first search should
    originate from. The type is the type of a vertex descriptor for the
***************
*** 218,223 ****
--- 229,249 ----
    <b>Default:</b> <tt>get(vertex_index, g)</tt>
  </blockquote>
  
+ UTIL: <tt>buffer(Buffer&amp; S)</tt>
+ <blockquote>
+   This is used to optimize memory usage and/or to determine the order
+   in which vertices will be discovered. If a stack (LIFO) is used,
+   then the traversal will be according to the usual DFS ordering.
+   Data structures other than a stack can be used, but the traversal
+   order will be different. The type <tt>Buffer</tt> must be a model of
+   <a href="./Buffer.html">Buffer</a>. The <tt>value_type</tt> of the
+   buffer must be
+   <tt>boost::dfs_buffer_traits&lt;Graph&gt;::value_type</tt>.<br>
+   <b>Default:</b> <tt>std::stack&lt;T, std::vector&lt;T&gt; &gt;</tt>,
+   where <tt>T</tt> is
+   <tt>boost::dfs_buffer_traits&lt;Graph&gt;::value_type</tt>
+ </blockquote>
+ 
  <P>
  
  <H3><A NAME="SECTION001340300000000000000">
