Class: DS::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/ds/queues/queue.rb

Overview

Class implements queue data structure.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(store = :array) ⇒ Queue

Create new queue. First parameter determines how the queue will be represented internally.



8
9
10
11
12
13
14
# File 'lib/ds/queues/queue.rb', line 8

def initialize(store = :array)
  if store == :array 
    @store = []
  else
    @store = List.new
  end
end

Class Method Details

.createObject

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

#dequeueObject 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.

Returns:

  • (Boolean)


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

#lengthObject

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

#peekObject

Returns element from forehead of queue.



37
38
39
# File 'lib/ds/queues/queue.rb', line 37

def peek
  @store.first
end