Class: HiwaiKaeuta::PriorityQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/hiwai_kaeuta/priority_queue.rb

Instance Method Summary collapse

Constructor Details

#initializePriorityQueue

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

Returns:

  • (Boolean)


20
21
22
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 20

def empty?
  @list.empty?
end

#popObject



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_aObject



33
34
35
# File 'lib/hiwai_kaeuta/priority_queue.rb', line 33

def to_a
  @list
end