A MinHeap is a heap where the items are returned in ascending order of key value.
Public Class methods
MinHeap.new(ary) -> new_heap
Creates a new MinHeap with an optional array parameter of items to insert into the heap. A MinHeap is created by calling Containers::Heap.new { |x, y| (x <=> y) == -1 }, so this is a convenience class.
minheap = MinHeap.new([1, 2, 3, 4]) minheap.pop #=> 1 minheap.pop #=> 2
[show source]
# File lib/containers/heap.rb, line 474 def initialize(ary=[]) super(ary) { |x, y| (x <=> y) == -1 } end
Public Instance methods
min -> value
min -> nil
Returns the item with the smallest key, but does not remove it from the heap.
minheap = MinHeap.new([1, 2, 3, 4]) minheap.min #=> 1
[show source]
# File lib/containers/heap.rb, line 486 def min self.next end
min! -> value
min! -> nil
Returns the item with the smallest key and removes it from the heap.
minheap = MinHeap.new([1, 2, 3, 4]) minheap.min! #=> 1 minheap.size #=> 3
[show source]
# File lib/containers/heap.rb, line 499 def min! self.pop end