class MiniGraph::Core::Search::BFS
Breadth-First Search
Public Instance Methods
visit(index, visited=Array.new(graph.size, false)) { |next_index| ... }
click to toggle source
# File lib/mini_graph/core/search.rb, line 52 def visit(index, visited=Array.new(graph.size, false), &block) queue = [] visited[index] = true queue.push(index) while !queue.empty? next_index = queue.shift yield next_index graph.adjacent_vertices(next_index).each do |vi| unless visited[vi] visited[vi] = true queue.push(vi) end end end end