class Containers::MinHeap

A MinHeap is a heap where the items are returned in ascending order of key value.

Public Class Methods

new(ary) → new_heap click to toggle source

Creates a new MinHeap with an optional array parameter of items to insert into the heap. A MinHeap is created by calling 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
Calls superclass method Containers::Heap::new
    # File lib/containers/heap.rb
471 def initialize(ary=[])
472   super(ary) { |x, y| (x <=> y) == -1 }
473 end

Public Instance Methods

min → value click to toggle source
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
    # File lib/containers/heap.rb
483 def min
484   self.next
485 end
min! → value click to toggle source
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
    # File lib/containers/heap.rb
496 def min!
497   self.pop
498 end