main
 1require "spec_helper"
 2require "ostruct"
 3
 4def dfs(node)
 5  stack = [node]
 6  until stack.empty? do
 7    top = stack.pop
 8    p top.name
 9    top.children.reverse_each { |x| stack.push(x) }
10  end
11end
12
13describe "dfs" do
14  it "should visit each item" do
15    nailah = OpenStruct.new(:name => "nini", :children => [])
16    adia = OpenStruct.new(:name => "adia", :children => [])
17    allison = OpenStruct.new(:name => "alli", :children => [adia, nailah])
18    caius = OpenStruct.new(:name => "caius", :children => [])
19    reeves = OpenStruct.new(:name => "reeves", :children => [])
20    lisa = OpenStruct.new(:name => "lisa", :children => [caius, reeves])
21    sandi = OpenStruct.new(:name => "sandi", :children => [allison, lisa])
22    dfs(sandi)
23  end
24end