class BasicQueue::Queue
@author Robert Sedgewick @author Kevin Wayne @author Michael Imstepf @see algs4.cs.princeton.edu/13stacks @see algs4.cs.princeton.edu/13stacks/LinkedQueue.java.html
Public Class Methods
new()
click to toggle source
Initializes the queue and sets variables.
# File lib/basic_queue.rb, line 24 def initialize @length = 0 @first = nil @last = nil end
Public Instance Methods
<<(item)
click to toggle source
Adds new item to the queue. Alias method for enq()
. @param item [Item] the item to be enqueued @return [Item] item
# File lib/basic_queue.rb, line 55 def <<(item) enq(item) end
clear()
click to toggle source
Clears queue. @return [Boolean] true
# File lib/basic_queue.rb, line 85 def clear @length = 0 @first = nil @last = nil true end
deq()
click to toggle source
Removes and returns the item on this queue that was least recently added. @return [Item] dequeued item
# File lib/basic_queue.rb, line 61 def deq return nil if empty? # save previous first node for return value old_first = @first # update first node @first = @first.next_node @length -= 1 # avoid loitering @last = nil if empty? old_first.item end
empty?()
click to toggle source
Checks whether the queue is empty or not. @return [Boolean]
# File lib/basic_queue.rb, line 106 def empty? length == 0 end
enq(item)
click to toggle source
Adds new item to the queue. @param item [Item] the item to be enqueued @return [Item] item
# File lib/basic_queue.rb, line 33 def enq(item) # save previous old last node for use below old_last = @last # create new last node and update @last_item @last = Node.new(item, nil) if empty? # set to nil @first = @last else # point 2nd last node to last node old_last.next_node = @last end @length += 1 item end
length()
click to toggle source
Returns length of queue. @return [Integer]
# File lib/basic_queue.rb, line 94 def length @length end
peek()
click to toggle source
Returns next item in the queue. @return [Item] item
# File lib/basic_queue.rb, line 79 def peek empty? ? nil : @first.item end
size()
click to toggle source
Returns length of queue. Alias method for length
.
# File lib/basic_queue.rb, line 100 def size length end