Commit 6dc1319

mo khan <mo@mokhan.ca>
2013-07-13 16:49:12
extract visitors to separate files
1 parent 84b475c
Changed files (3)
lib/data_structures/binary_tree.rb
@@ -1,4 +1,6 @@
 require_relative "../utility/block_visitor"
+require_relative "../utility/total_count_visitor"
+require_relative "pre_order_traversal"
 
 class BinaryTree
   def push(item)
@@ -50,24 +52,4 @@ class BinaryTree
       traversal.traverse(self, visitor)
     end
   end
-
-  class TotalCountVisitor
-    attr_reader :result
-
-    def initialize
-      @result = 0
-    end
-
-    def visit(item)
-      @result += 1
-    end
-  end
-end
-
-class PreOrderTraversal
-  def traverse(node, visitor)
-    visitor.visit(node)
-    node.left.accept(visitor, self) if node.left
-    node.right.accept(visitor, self) if node.right
-  end
 end
lib/data_structures/pre_order_traversal.rb
@@ -0,0 +1,7 @@
+class PreOrderTraversal
+  def traverse(node, visitor)
+    visitor.visit(node)
+    node.left.accept(visitor, self) if node.left
+    node.right.accept(visitor, self) if node.right
+  end
+end
lib/utility/total_count_visitor.rb
@@ -0,0 +1,11 @@
+  class TotalCountVisitor
+    attr_reader :result
+
+    def initialize
+      @result = 0
+    end
+
+    def visit(item)
+      @result += 1
+    end
+  end