(Latest Revision: Mon Apr 22 00:19:53 PST 2008 )
ALGORITHM FOR A BREADTH-FIRST TRAVERSAL
       /* Traverse a graph, starting at vertex v. */
bfs (in v:Vertex)
{
   q.createQueue() ;
       /* mark v and add it to the queue. */
   mark v as visited ;  
   q.enqueue(v)
   while ( !q.isEmpty() )
   {
      q.dequeue(w)
            /* Loop invariant: there is a path from vertex w 
               to every vertex in the queue q */
      for (each unvisited vertex u adjacent to w)
      {
         mark u as visited
         q.enqueue(u)
      } /* end for */
   } /* end while */
} /* end bfs */