class BFS

Public Class Methods

new(visitor) click to toggle source
# File lib/visitor/bfs.rb, line 2
def initialize(visitor)
  @visitor = visitor
  @q = Array.new
end

Public Instance Methods

traverse(node) click to toggle source
# File lib/visitor/bfs.rb, line 7
def traverse(node)
  @q.unshift(node)

  while (@q.size > 0) do
    node = @q.pop
    if (@visitor.preVisit(node)) then
      if (node.children != nil)  then
        node.children.values.each do |child|
          @q.unshift(child)
        end
      end
    end
  end

end