diff --git a/binary_search_tree.rb b/binary_search_tree.rb index 23a2fb1..bb73814 100644 --- a/binary_search_tree.rb +++ b/binary_search_tree.rb @@ -15,8 +15,9 @@ def initialize(value, left=nil, right=nil) def initialize(values=[]) @root = nil @size = 0 - if values.length > 0 - ## TODO: Add the values from the array to the tree + + values.each do |v| + insert(v) end end diff --git a/spec/binary_search_tree_spec.rb b/spec/binary_search_tree_spec.rb index 5629099..0cb7dcf 100644 --- a/spec/binary_search_tree_spec.rb +++ b/spec/binary_search_tree_spec.rb @@ -5,6 +5,14 @@ describe BinarySearchTree do let(:tree) { BinarySearchTree.new } + describe "initialize" do + it 'should initialize when given multiple values' do + init_tree = BinarySearchTree.new([5, 2, 4, 1]) + expect(init_tree).to respond_to(:size) + expect(init_tree.size).to eq(4) + end + end + describe "size" do it 'starts out with a size of 0' do expect(tree).to respond_to(:size)