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