
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

Create a queue data structure and demonstrate its operations.

(For implementations of queues, see the FIFO task.)



Operations:

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


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


 
queuePointerStart equ #$FD
queuePointerMinus1 equ #$FC     ;make this equal whatever "queuePointerStart" is, minus 1.
pushQueue:
STA 0,x
DEX
RTS
 
popQueue:
STX temp
LDX #queuePointerStart
LDA 0,x ;get the item that's first in line
PHA
    LDX #queuePointerMinus1
loop_popQueue:
    LDA 0,X  
    STA 1,X  
    DEX
    CPX temp
    BNE loop_popQueue
    LDX temp
    INX
PLA ;return the item that just left the queue
RTS
 
isQueueEmpty:
LDA #1
CPX #queuePointerStart
BEQ yes  ;return 1
 
SEC
SBC #1   ;return 0
 
yes:
RTS