Class: Mendel::MinPriorityQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/mendel/min_priority_queue.rb

Instance Method Summary collapse

Constructor Details

#initializeMinPriorityQueue

Returns a new instance of MinPriorityQueue.



8
9
10
# File 'lib/mendel/min_priority_queue.rb', line 8

def initialize
  self.wrapped_queue = PriorityQueue.new
end

Instance Method Details

#dumpObject



24
25
26
27
28
# File 'lib/mendel/min_priority_queue.rb', line 24

def dump
  [].tap {|items|
    items << pop while length > 0
  }
end

#dump_jsonObject



30
31
32
# File 'lib/mendel/min_priority_queue.rb', line 30

def dump_json
  JSON.dump(dump)
end

#lengthObject



20
21
22
# File 'lib/mendel/min_priority_queue.rb', line 20

def length
  wrapped_queue.length
end

#load(items) ⇒ Object

TODO - make the load methods class methods



35
36
37
38
39
# File 'lib/mendel/min_priority_queue.rb', line 35

def load(items)
  items.each do |item|
    push(*item)
  end
end

#load_json(json) ⇒ Object



41
42
43
# File 'lib/mendel/min_priority_queue.rb', line 41

def load_json(json)
  load(JSON.parse(json))
end

#popObject



16
17
18
# File 'lib/mendel/min_priority_queue.rb', line 16

def pop
  wrapped_queue.delete_min
end

#push(item, priority) ⇒ Object



12
13
14
# File 'lib/mendel/min_priority_queue.rb', line 12

def push(item, priority)
  wrapped_queue.push(item, priority)
end