Sha256: 5abfa53a3889a3914da094a461725d24326f98b5a50fce54de42f9d9b16d094c

Contents?: true

Size: 662 Bytes

Versions: 222

Compression:

Stored size: 662 Bytes

Contents

class Bst
  VERSION = 1

  attr_reader :data, :left, :right
  def initialize(data)
    @data = data
    @size = 1
  end

  def insert(value)
    if value <= data
      insert_left(value)
    else
      insert_right(value)
    end

    @size += 1
  end

  def each(&block)
    return enum_for(:each) { @size } unless block_given?

    left && left.each(&block)
    yield data
    right && right.each(&block)
  end

  private

  def insert_left(value)
    if left
      left.insert(value)
    else
      @left = Bst.new(value)
    end
  end

  def insert_right(value)
    if right
      right.insert(value)
    else
      @right = Bst.new(value)
    end
  end
end

Version data entries

222 entries across 222 versions & 1 rubygems

Version Path
trackler-2.2.1.4 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.1.3 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.1.2 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.1.1 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.1.0 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.6 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.5 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.4 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.3 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.2 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.1 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.2.0.0 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.55 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.54 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.53 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.52 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.51 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.50 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.49 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
trackler-2.1.0.48 tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb