
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


PROGRAM CLASS_DEMO
 
CLASS QUEUE
 
   LOCAL SP
   LOCAL DIM STACK[100]
 
   FUNCTION ISEMPTY()
      ISEMPTY=(SP=0)
   END FUNCTION
 
   PROCEDURE INIT
      SP=0
   END PROCEDURE
 
   PROCEDURE POP(->XX)
      XX=STACK[SP]
      SP=SP-1
   END PROCEDURE
 
   PROCEDURE PUSH(XX)
      SP=SP+1
      STACK[SP]=XX
   END PROCEDURE
 
END CLASS
 
NEW PILA:QUEUE
 
BEGIN
    PILA_INIT  ! constructor
    FOR N=1 TO 4 DO  ! push 4 numbers
       PRINT("Push";N)
       PILA_PUSH(N)
    END FOR
    FOR I=1 TO 5 DO  ! pop 5 numbers
       IF NOT PILA_ISEMPTY() THEN
           PILA_POP(->N)
           PRINT("Pop";N)
         ELSE
           PRINT("Queue is empty!")
       END IF
    END FOR
    PRINT("* End *")
END PROGRAM