Class: DS::Queue
- Inherits:
-
Object
- Object
- DS::Queue
- Defined in:
- lib/ds/queues/queue.rb
Overview
Class implements queue data structure.
Class Method Summary collapse
-
.create ⇒ Object
Create new queue.Internaly uses list to store elements.
Instance Method Summary collapse
-
#dequeue ⇒ Object
(also: #shift)
Removes element from queue and returns it.
-
#empty? ⇒ Boolean
Checks if queue is empty.
-
#enqueue(x) ⇒ Object
(also: #push)
Adds element to queue and returns queue itself.
-
#initialize(store = :array) ⇒ Queue
constructor
Create new queue.
-
#length ⇒ Object
Returns length of queue.
-
#peek ⇒ Object
Returns element from forehead of queue.
Constructor Details
Class Method Details
.create ⇒ Object
Create new queue.Internaly uses list to store elements.
17 18 19 |
# File 'lib/ds/queues/queue.rb', line 17 def Queue.create new(:list) end |
Instance Method Details
#dequeue ⇒ Object Also known as: shift
Removes element from queue and returns it.
30 31 32 |
# File 'lib/ds/queues/queue.rb', line 30 def dequeue @store.shift end |
#empty? ⇒ Boolean
Checks if queue is empty.
47 48 49 |
# File 'lib/ds/queues/queue.rb', line 47 def empty? @store.empty? end |
#enqueue(x) ⇒ Object Also known as: push
Adds element to queue and returns queue itself.
22 23 24 25 |
# File 'lib/ds/queues/queue.rb', line 22 def enqueue(x) @store << x self end |
#length ⇒ Object
Returns length of queue. If queue is empty returns 0.
42 43 44 |
# File 'lib/ds/queues/queue.rb', line 42 def length @store.length end |
#peek ⇒ Object
Returns element from forehead of queue.
37 38 39 |
# File 'lib/ds/queues/queue.rb', line 37 def peek @store.first end |