Commit 6dc1319
Changed files (3)
lib
data_structures
utility
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