Class: HiwaiKaeuta::PriorityQueue
- Inherits:
-
Object
- Object
- HiwaiKaeuta::PriorityQueue
- Defined in:
- lib/hiwai_kaeuta/priority_queue.rb
Instance Method Summary collapse
- #delete(elem) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize ⇒ PriorityQueue
constructor
A new instance of PriorityQueue.
- #pop ⇒ Object
- #push(elem, priority) ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize ⇒ PriorityQueue
Returns a new instance of PriorityQueue.
2 3 4 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 2 def initialize @list = [] end |
Instance Method Details
#delete(elem) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 24 def delete(elem) i = 0 @list.each do |x| break if x[:elem].equal?(elem) i += 1 end @list.delete_at(i) end |
#empty? ⇒ Boolean
20 21 22 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 20 def empty? @list.empty? end |
#pop ⇒ Object
15 16 17 18 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 15 def pop r = @list.shift r[:elem] end |
#push(elem, priority) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 6 def push(elem, priority) i = 0 @list.each do |x| break if priority > x[:priority] i += 1 end @list.insert(i, { priority: priority, elem: elem }) end |
#to_a ⇒ Object
33 34 35 |
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 33 def to_a @list end |