class Heap::HeapTemplate
Heap
Template
Attributes
elements[R]
Public Instance Methods
add(element)
click to toggle source
# File lib/Heap/heap_template.rb, line 6 def add(element) if element.is_a? Array element.each do |el| @elements.push el swim_up(count) end elsif defined? element.elements add element.elements else @elements.push element swim_up(count) end end
count()
click to toggle source
# File lib/Heap/heap_template.rb, line 20 def count @elements.length end
sort()
click to toggle source
# File lib/Heap/heap_template.rb, line 24 def sort el_temp = @elements.clone result = [] result.push extract_root! while count > 0 @elements = el_temp result end
Protected Instance Methods
extract_root()
click to toggle source
# File lib/Heap/heap_template.rb, line 34 def extract_root @elements[0] end
extract_root!()
click to toggle source
# File lib/Heap/heap_template.rb, line 38 def extract_root! swap(1, count) el = @elements.pop swim_down(1) el end
swap(index1, index2)
click to toggle source
# File lib/Heap/heap_template.rb, line 45 def swap(index1, index2) temp = @elements[index1 - 1] @elements[index1 - 1] = @elements[index2 - 1] @elements[index2 - 1] = temp end