Class: Priorityq::PriorityQueue
- Inherits:
-
Object
- Object
- Priorityq::PriorityQueue
- Defined in:
- lib/priorityq/priority_queue.rb
Defined Under Namespace
Classes: Element
Class Method Summary collapse
Instance Method Summary collapse
- #empty? ⇒ Boolean
-
#initialize(heap = Priorityq::Heap.max) ⇒ PriorityQueue
constructor
A new instance of PriorityQueue.
- #peek ⇒ Object
- #peek_element ⇒ Object
- #pop ⇒ Object
- #pop_element ⇒ Object
- #push(priority, value) ⇒ Object
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
.max ⇒ Object
18 19 20 |
# File 'lib/priorityq/priority_queue.rb', line 18 def self.max new end |
.min ⇒ Object
22 23 24 |
# File 'lib/priorityq/priority_queue.rb', line 22 def self.min new Priorityq::Heap.min end |
Instance Method Details
#empty? ⇒ Boolean
30 31 32 |
# File 'lib/priorityq/priority_queue.rb', line 30 def empty? heap.empty? end |
#peek ⇒ Object
34 35 36 |
# File 'lib/priorityq/priority_queue.rb', line 34 def peek peek_element&.value end |
#peek_element ⇒ Object
38 39 40 |
# File 'lib/priorityq/priority_queue.rb', line 38 def peek_element heap.peek end |
#pop ⇒ Object
42 43 44 |
# File 'lib/priorityq/priority_queue.rb', line 42 def pop pop_element&.value end |
#pop_element ⇒ Object
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 |