Class: Priorityq::PriorityQueue

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

Defined Under Namespace

Classes: Element

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(heap = Priorityq::Heap.max) ⇒ PriorityQueue

Returns a new instance of PriorityQueue.



26
27
28
# File 'lib/priorityq/priority_queue.rb', line 26

def initialize(heap = Priorityq::Heap.max)
  @heap = heap
end

Class Method Details

.maxObject



18
19
20
# File 'lib/priorityq/priority_queue.rb', line 18

def self.max
  new
end

.minObject



22
23
24
# File 'lib/priorityq/priority_queue.rb', line 22

def self.min
  new Priorityq::Heap.min
end

Instance Method Details

#empty?Boolean

Returns:



30
31
32
# File 'lib/priorityq/priority_queue.rb', line 30

def empty?
  heap.empty?
end

#peekObject



34
35
36
# File 'lib/priorityq/priority_queue.rb', line 34

def peek
  peek_element&.value
end

#peek_elementObject



38
39
40
# File 'lib/priorityq/priority_queue.rb', line 38

def peek_element
  heap.peek
end

#popObject



42
43
44
# File 'lib/priorityq/priority_queue.rb', line 42

def pop
  pop_element&.value
end

#pop_elementObject



46
47
48
# File 'lib/priorityq/priority_queue.rb', line 46

def pop_element
  heap.pop
end

#push(priority, value) ⇒ Object



50
51
52
# File 'lib/priorityq/priority_queue.rb', line 50

def push(priority, value)
  heap.push Element.new(priority, value)
end