Class: DSA::MaxHeap
- Inherits:
-
Object
- Object
- DSA::MaxHeap
- Defined in:
- lib/dsa-ruby/heap.rb
Instance Method Summary collapse
- #empty? ⇒ Boolean
-
#initialize(elements = []) ⇒ MaxHeap
constructor
A new instance of MaxHeap.
- #peek ⇒ Object
- #pop ⇒ Object
- #push(val) ⇒ Object
- #size ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize(elements = []) ⇒ MaxHeap
Returns a new instance of MaxHeap.
75 76 77 78 |
# File 'lib/dsa-ruby/heap.rb', line 75 def initialize(elements = []) @elements = [] elements.each { |e| push(e) } end |
Instance Method Details
#empty? ⇒ Boolean
104 105 106 |
# File 'lib/dsa-ruby/heap.rb', line 104 def empty? @elements.empty? end |
#peek ⇒ Object
95 96 97 98 |
# File 'lib/dsa-ruby/heap.rb', line 95 def peek raise IndexError, "heap is empty" if empty? @elements[0] end |
#pop ⇒ Object
86 87 88 89 90 91 92 93 |
# File 'lib/dsa-ruby/heap.rb', line 86 def pop raise IndexError, "heap is empty" if empty? swap(0, @elements.size - 1) max = @elements.pop sift_down(0) max end |
#push(val) ⇒ Object
80 81 82 83 84 |
# File 'lib/dsa-ruby/heap.rb', line 80 def push(val) @elements << val sift_up(@elements.size - 1) self end |
#size ⇒ Object
100 101 102 |
# File 'lib/dsa-ruby/heap.rb', line 100 def size @elements.size end |
#to_a ⇒ Object
108 109 110 |
# File 'lib/dsa-ruby/heap.rb', line 108 def to_a @elements.dup end |