class Mendel::MinPriorityQueue

Attributes

wrapped_queue[RW]

Public Class Methods

new() click to toggle source
# File lib/mendel/min_priority_queue.rb, line 8
def initialize
  self.wrapped_queue = PriorityQueue.new
end

Public Instance Methods

dump() click to toggle source
# File lib/mendel/min_priority_queue.rb, line 24
def dump
  [].tap {|items|
    items << pop while length > 0
  }
end
dump_json() click to toggle source
# File lib/mendel/min_priority_queue.rb, line 30
def dump_json
  JSON.dump(dump)
end
length() click to toggle source
# File lib/mendel/min_priority_queue.rb, line 20
def length
  wrapped_queue.length
end
load(items) click to toggle source

TODO - make the load methods class methods

# File lib/mendel/min_priority_queue.rb, line 35
def load(items)
  items.each do |item|
    push(*item)
  end
end
load_json(json) click to toggle source
# File lib/mendel/min_priority_queue.rb, line 41
def load_json(json)
  load(JSON.parse(json))
end
pop() click to toggle source
# File lib/mendel/min_priority_queue.rb, line 16
def pop
  wrapped_queue.delete_min
end
push(item, priority) click to toggle source
# File lib/mendel/min_priority_queue.rb, line 12
def push(item, priority)
  wrapped_queue.push(item, priority)
end