class Heap::BinaryHeap::BinaryHeap

Binary Heap template

Public Class Methods

new(elements = []) click to toggle source
# File lib/Heap/binary_heap/binary_heap.rb, line 8
def initialize(elements = [])
  @elements = []
  add(elements.pop) until elements.empty?
end

Protected Instance Methods

get_children(index) click to toggle source
# File lib/Heap/binary_heap/binary_heap.rb, line 13
def get_children(index)
  child1 = 2 * index
  child2 = 2 * index + 1
  children = {}
  children[@elements[child1 - 1]] = child1 unless @elements[child1 - 1].nil?
  children[@elements[child2 - 1]] = child2 unless @elements[child2 - 1].nil?
  children
end