-- Copyright 2003, Trustees of Indiana University -- Please see the license in the file ../LICENSE class BREADTH_FIRST_SEARCH[VERTEX, EDGE -> GRAPH_EDGE[VERTEX], G -> VERTEX_LIST_AND_INCIDENCE_GRAPH[VERTEX, EDGE]] inherit COLORS feature go(g: G; src: VERTEX; color: READ_WRITE_PROPERTY_MAP[VERTEX, INTEGER]; vis: VISITOR[G, VERTEX, EDGE]) is local u_iter: JITERATOR[VERTEX] -- color: HASH_PROPERTY_MAP[VERTEX, INTEGER] q: LINKED_QUEUE_BUFFER[VERTEX] bf_visit: GRAPH_SEARCH[VERTEX, EDGE, G] do -- -- initialization -- create color.make create q.make u_iter := g.vertices from u_iter.start until u_iter.off loop color.put(u_iter.item, WHITE) vis.initialize_vertex(u_iter.item, g) u_iter.forth; end create bf_visit bf_visit.go(g, src, vis, color, q) end end -- BREADTH_FIRST_SEARCH