Commit 6457c1d

mo khan <mo@mokhan.ca>
2013-07-13 16:55:27
tighten the binary tree
1 parent 6dc1319
Changed files (2)
lib
data_structures
spec
data_structures
lib/data_structures/binary_tree.rb
@@ -4,11 +4,8 @@ require_relative "pre_order_traversal"
 
 class BinaryTree
   def push(item)
-    if @root
-      @root.push(item)
-    else
-      @root = BinaryTreeNode.new(item) unless @root
-    end
+    @root.push(item) if @root
+    @root = BinaryTreeNode.new(item) unless @root
   end
 
   def size
@@ -34,17 +31,11 @@ class BinaryTree
 
     def push(item)
       if (item <=> @data) == -1
-        if @left
-          @left.push(item)
-        else
-          @left = BinaryTreeNode.new(item)
-        end
+        @left.push(item) if @left
+        @left = BinaryTreeNode.new(item) unless @left
       else
-        if @right
-          @right.push(item)
-        else
-          @right = BinaryTreeNode.new(item)
-        end
+        @right.push(item) if @right
+        @right = BinaryTreeNode.new(item) unless @right
       end
     end
 
spec/data_structures/binary_tree_spec.rb
@@ -15,7 +15,7 @@ describe BinaryTree do
   context "when many items are pushed on to the tree" do
     before :each do
       10.times do |n|
-        sut.push(n)
+        sut.push(rand(n))
       end
     end