
Data Structure

This illustrates a data structure, a means of storing data within a program.

You may see other such structures in the Data Structures category.
 Illustration of FIFO behavior
Task

Implement a FIFO queue.

Elements are added at one side and popped from the other in the order of insertion.



Operations:

   push   (aka enqueue)    - add element
   pop     (aka dequeue)    - pop first element
   empty                             - return truth value when empty


Errors:

   handle the error of trying to pop from an empty queue (behavior depends on the language and platform)


See

   Queue/Usage   for the built-in FIFO or queue of your language or standard library.


See also

 Array
 Associative array: Creation, Iteration
 Collections
 Compound data type
 Doubly-linked list: Definition, Element definition, Element insertion, List Traversal, Element Removal
 Linked list
 Queue: Definition, Usage
 Set
 Singly-linked list: Element definition, Element insertion, List Traversal, Element Removal
 Stack


/* NetRexx */
options replace format comments java crossref savelog symbols nobinary
 
mqueue = ArrayDeque()
 
viewQueue(mqueue)
 
a = "Fred"
mqueue.push('')      /* Puts an empty line onto the queue */
mqueue.push(a 2)     /* Puts "Fred 2" onto the queue */
viewQueue(mqueue)
 
a = "Toft"
mqueue.add(a 2)      /* Enqueues "Toft 2" */
mqueue.add('')       /* Enqueues an empty line behind the last */
viewQueue(mqueue)
 
loop q_ = 1 while mqueue.size > 0
  parse mqueue.pop.toString line
  say q_.right(3)':' line
  end q_
viewQueue(mqueue)
 
return
 
method viewQueue(mqueue = Deque) private static
 
   If mqueue.size = 0 then do
    Say 'Queue is empty'
    end
  else do
    Say 'There are' mqueue.size 'elements in the queue'
    end
 
  return
 