
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


/*REXX program to demonstrate FIFO queue usage by some simple operations*/
call viewQueue
a="Fred"
push                                   /*puts a  "null" on top of queue.*/
push a 2                               /*puts  "Fred 2" on top of queue.*/
call viewQueue
 
queue "Toft 2"                         /*put  "Toft 2"  on queue bottom.*/
queue                                  /*put a "null"   on queue bottom.*/
call viewQueue
                  do n=1  while queued()\==0
                  parse pull xxx
                  say "queue entry" n': ' xxx
                  end   /*n*/
call viewQueue
exit                                   /*stick a fork in it, we're done.*/
/*──────────────────────────────────viewQueue subroutine────────────────*/
viewQueue:  if queued()==0 then say 'Queue is empty'
                           else say 'There are' queued() 'elements in the queue'
return