Commit 130be5b
Changed files (5)
lib/data_structures/binary_tree.rb
@@ -1,6 +1,6 @@
require_relative "../utility/block_visitor"
require_relative "../utility/total_count_visitor"
-require_relative "pre_order_traversal"
+require_relative "../pre_order_traversal"
class BinaryTree
def push(item)
lib/data_structures/linked_list_stack.rb
@@ -58,15 +58,3 @@ class Node
@next == nil
end
end
-
-class TotalCountVisitor
- attr_reader :result
-
- def initialize
- @result = 0
- end
-
- def visit(item)
- @result += 1
- end
-end
lib/in_order_traversal.rb
@@ -0,0 +1,7 @@
+class InOrderTraversal
+ def traverse(node, visitor)
+ node.left.accept(visitor, self) if node.left
+ visitor.visit(node)
+ node.right.accept(visitor, self) if node.right
+ end
+end
lib/post_order_traversal.rb
@@ -0,0 +1,7 @@
+class PostOrderTraversal
+ def traverse(node, visitor)
+ node.left.accept(visitor, self) if node.left
+ node.right.accept(visitor, self) if node.right
+ visitor.visit(node)
+ end
+end
lib/data_structures/pre_order_traversal.rb → lib/pre_order_traversal.rb
File renamed without changes