CS249-Projects/PA05-1004/QueueUtility.c
cdez 770212bc8e "Completed" PA05
(aka don't want to spend anymore time on it)
+- ArrayDataEngine.c
+- IteratorUtility.c
+- QueueUtility.c
+- StackUtility.c
2023-10-04 17:25:56 -07:00

106 lines
No EOL
3.1 KiB
C

// header files
#include "QueueUtility.h"
/* Data Structures
typedef struct StateArrayStruct
{
StateDataType *array;
int size, capacity;
} QueueType; (aka StateArrayType)
Data Structures*/
// function implementations
/*
Name: clearQueue
Process: clears QueueType, returns NULL
Function input/parameters: pointer to queue type (QueueType *)
Function output/parameters: none
Function output/returned: NULL
Device input/---: none
Device output/---: none
Dependencies: clearDataStructure
*/
QueueType *clearQueue( QueueType *queue )
{
// clear the entire data structure
clearDataStructure(queue);
// return NULL
return NULL;
}
/*
Name: createQueue
Process: creates QueueType, initializes front index to zero,
rear index to -1, returns pointer to data structure
Function input/parameters: initial capacity (int)
Function output/parameters: none
Function output/returned: pointer to queue type (QueueType *)
Device input/---: none
Device output/---: none
Dependencies: createDataStructure
*/
QueueType *createQueue( int initialCapacity )
{
// create the data structure
QueueType *queueDataStructure;
queueDataStructure = createDataStructure(initialCapacity);
// return QueueType
return queueDataStructure;
}
/*
Name: peekFront
Process: captures value at front of queue
returns true if successful and sets return value,
otherwise, sets return value to empty, returns false
Function input/parameters: pointer to queue type (QueueType *)
Function output/parameters: pointer to return value (StateDataType *)
Function output/returned: Boolean result of operation
Device input/---: none
Device output/---: none
Dependencies: getItemAtIndex, getListSize
*/
bool peekFront( StateDataType *returnVal, const QueueType queue )
{
// use getListSize to get the 'front' value
// use getItemAtIndex to 'see' the value at the front.
return getItemAtIndex(returnVal, queue, getListSize(queue));
}
/*
Name: dequeue
Process: captures value at front of queue, removes and returns value,
returns true if successful,
otherwise, sets return value to empty, returns false
Function input/parameters: pointer to queue type (QueueType *)
Function output/parameters: pointer to return value (StateDataType *)
Function output/returned: Boolean result of operation
Device input/---: none
Device output/---: none
Dependencies: removeItemAtIndex, getListSize
*/
bool dequeue( StateDataType *returnVal, QueueType *queue )
{
// get the "front" of the queue
// remove the value in the queue and return success/failure
return removeItemAtIndex(queue, returnVal, getListSize(*queue));
}
/*
Name: enqueue
Process: sets value at rear of queue
returns true if successful, false otherwise
Function input/parameters: pointer to queue type (QueueType *)
Function output/parameters: value to be pushed (const StateDataType)
Function output/returned: Boolean result of operation
Device input/---: none
Device output/---: none
Dependencies: insertItemAtIndex
*/
bool enqueue( QueueType *queue, const StateDataType toBePushed )
{
// return function success/failure based on inputs
return insertItemAtIndex(queue, toBePushed, 0);
}