PA05 STUB Function creation
++ ArrayDataEngine.c ++ IteratorUtility.c ++ QueueUtility.c ++ StackUtility.c +- Makefile for PA05
This commit is contained in:
parent
108632e832
commit
e0aadd2db6
5 changed files with 641 additions and 16 deletions
257
PA05-1004/ArrayDataEngine.c
Normal file
257
PA05-1004/ArrayDataEngine.c
Normal file
|
|
@ -0,0 +1,257 @@
|
||||||
|
// header files
|
||||||
|
#include "ArrayDataEngine.h"
|
||||||
|
|
||||||
|
/* Data Structures
|
||||||
|
typedef struct StateDataStruct
|
||||||
|
{
|
||||||
|
char name[ STD_STR_LEN ];
|
||||||
|
|
||||||
|
int population;
|
||||||
|
|
||||||
|
double growth;
|
||||||
|
|
||||||
|
char majority;
|
||||||
|
} StateDataType;
|
||||||
|
|
||||||
|
typedef struct StateArrayStruct
|
||||||
|
{
|
||||||
|
StateDataType *array;
|
||||||
|
|
||||||
|
int size, capacity;
|
||||||
|
} StateArrayType;
|
||||||
|
Data Structures */
|
||||||
|
|
||||||
|
// function implementations
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: clearDataStructure
|
||||||
|
Process: deallocates memory for the array data structure
|
||||||
|
and encapsulated state data,
|
||||||
|
returns NULL to calling function
|
||||||
|
Function input/parameters: pointer to state data array (StateDataArray *)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: NULL
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: free
|
||||||
|
*/
|
||||||
|
StateArrayType *clearDataStructure( StateArrayType *arrayPtr )
|
||||||
|
{
|
||||||
|
// return NULL
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: copyDataList
|
||||||
|
Process: copies elements from one state data array to another
|
||||||
|
resets array size as needed,
|
||||||
|
also resets array capacity as needed if destination array type
|
||||||
|
capacity is less than capacity of source array type
|
||||||
|
Function input/parameters: source state data array type (StateArrayType *)
|
||||||
|
Function output/parameters: pointer to destination state data array type
|
||||||
|
(StateArrayType *)
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: privateCheckForResize, deepCopyData
|
||||||
|
*/
|
||||||
|
void copyDataList( StateArrayType *dest, const StateArrayType src )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: createDataStructure
|
||||||
|
Process: dynamically creates instance of state array type
|
||||||
|
along with dynamically allocating the state data array within it
|
||||||
|
Function input/parameters: given initial capacity (int)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: pointer to state array type (StateArrayType *)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: malloc, sizeof (C keyword)
|
||||||
|
*/
|
||||||
|
StateArrayType *createDataStructure( int initialCapacity )
|
||||||
|
{
|
||||||
|
// return stateArrayType
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: deepCopyData
|
||||||
|
Process: copies all members of a StateDataType item into another one
|
||||||
|
Function input/parameters: state data type item (const StateDataType )
|
||||||
|
Function output/parameters: pointer to state data item (StateDataType *)
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: privateCopyString
|
||||||
|
*/
|
||||||
|
void deepCopyData( StateDataType *dest, const StateDataType src )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: displayData
|
||||||
|
Process: displays comma-delimited data items in array if array is not empty,
|
||||||
|
otherwise displays "Data not found - Display aborted",
|
||||||
|
allows for subtitle to be added to "Display Data - "
|
||||||
|
Function input/parameters: state array type (const StateArrayType),
|
||||||
|
subtitle (const char *)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/monitor: data displayed as specified
|
||||||
|
Dependencies: printf, listIsEmpty
|
||||||
|
*/
|
||||||
|
void displayData( const StateArrayType stateData, const char *subTitle )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getItemAtIndex
|
||||||
|
Process: checks for index within bounds,
|
||||||
|
acquires and returns the value as a parameter,
|
||||||
|
and returns true,
|
||||||
|
otherwise sets data in parameter to empty and returns false
|
||||||
|
Function input/parameters: state array type (const StateArrayType),
|
||||||
|
list index (int)
|
||||||
|
Function output/parameters: value if found,
|
||||||
|
otherwise, value set to empty (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation (bool)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: deepCopyData, setItemToEmpty
|
||||||
|
*/
|
||||||
|
bool getItemAtIndex( StateDataType *returnVal,
|
||||||
|
const StateArrayType stateData, int listIndex )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getListSize
|
||||||
|
Process: provides the size of the list
|
||||||
|
Function input/parameters: state array type (const StateArrayType)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: size of the list (int)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: none
|
||||||
|
*/
|
||||||
|
int getListSize( const StateArrayType stateData )
|
||||||
|
{
|
||||||
|
// return 0 (TEMP)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: insertItemAtIndex
|
||||||
|
Process: checks for index in bounds, inserts item at index, returns true,
|
||||||
|
resizes array as needed,
|
||||||
|
if index not in bounds, returns false
|
||||||
|
Function input/parameters: pointer to state array type (StateArrayType *),
|
||||||
|
StateDataType item to insert (const StateDataType),
|
||||||
|
index for insertion (int)
|
||||||
|
Function output/parameters: updated pointer to state array type
|
||||||
|
(StateArrayType *)
|
||||||
|
Function output/returned: Boolean result of specified process (bool)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: checkForResize
|
||||||
|
*/
|
||||||
|
bool insertItemAtIndex( StateArrayType *stateData,
|
||||||
|
StateDataType toBeInserted, int insertIndex )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: listIsEmpty
|
||||||
|
Process: returns true if list is empty, false otherwise
|
||||||
|
Function input/parameters: state array type (const StateArrayType)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: Boolean result of test as specified (bool)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: none
|
||||||
|
*/
|
||||||
|
bool listIsEmpty( const StateArrayType array )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: privateCheckForResize
|
||||||
|
Process: checks if array needs to be resized,
|
||||||
|
resizes (increases capacity of) array to double current capacity
|
||||||
|
Function input/parameters: pointer to state array type (StateArrayType *)
|
||||||
|
Function output/parameters: updated pointer
|
||||||
|
to state array type (StateArrayType *)
|
||||||
|
if resize has taken place,
|
||||||
|
otherwise array type is unchanged
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: malloc, sizeof (C keyword), deepCopyData, free
|
||||||
|
*/
|
||||||
|
void privateCheckForResize( StateArrayType *stateData )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: privateCopyString
|
||||||
|
Process: copies string character for character up to NULL_CHAR of source string
|
||||||
|
Function input/parameters: source string to be copied (const char *)
|
||||||
|
Function output/parameters: destination string (char *)
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: none
|
||||||
|
*/
|
||||||
|
void privateCopyString( char *dest, const char *src )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: removeItemAtIndex
|
||||||
|
Process: removes from array at index, shifts data down as needed,
|
||||||
|
returns true if found, false otherwise
|
||||||
|
Function input/parameters: pointer to state array type (StateArrayType *),
|
||||||
|
index to remove (int)
|
||||||
|
Function output/parameters: pointer to updated state array type
|
||||||
|
(StateArrayType *),
|
||||||
|
pointer to removed item (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of removal operation (bool)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: none
|
||||||
|
*/
|
||||||
|
bool removeItemAtIndex( StateArrayType *stateData,
|
||||||
|
StateDataType *removedItem, int removeIndex )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: setItemToEmpty
|
||||||
|
Process: sets state data type struct to empty or default values,
|
||||||
|
including empty string and majority 'x'
|
||||||
|
Function input/parameters: pointer to state data value (StateDataType *)
|
||||||
|
Function output/parameters: pointer to updated state data value
|
||||||
|
(StateDataType *)
|
||||||
|
Function output/returned: none
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: none
|
||||||
|
*/
|
||||||
|
void setItemToEmpty( StateDataType *data )
|
||||||
|
{
|
||||||
|
// no return, void
|
||||||
|
}
|
||||||
171
PA05-1004/IteratorUtility.c
Normal file
171
PA05-1004/IteratorUtility.c
Normal file
|
|
@ -0,0 +1,171 @@
|
||||||
|
// header files
|
||||||
|
#include "IteratorUtility.h"
|
||||||
|
|
||||||
|
/* Data Structures
|
||||||
|
typedef struct IteratorStruct
|
||||||
|
{
|
||||||
|
StateArrayType *iterData;
|
||||||
|
|
||||||
|
int currentIndex;
|
||||||
|
} IteratorType;
|
||||||
|
Data Structures */
|
||||||
|
|
||||||
|
// function implementation
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: clearIterator
|
||||||
|
Process: clears the StateDataType sub-structure, and then the IteratorType
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: NULL
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: clearDataStructure, free
|
||||||
|
*/
|
||||||
|
IteratorType *clearIterator( IteratorType *iterator )
|
||||||
|
{
|
||||||
|
// return NULL
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: createIterator
|
||||||
|
Process: initializes the IteratorType,
|
||||||
|
and then the StateDataType sub-structure
|
||||||
|
Function input/parameters: initial capacity (int)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: pointer to initialized IteratorType (IteratorType *)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: malloc, createDataStructure
|
||||||
|
*/
|
||||||
|
IteratorType *createIterator( int initialCapacity )
|
||||||
|
{
|
||||||
|
// return IteratorType
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getFirst
|
||||||
|
Process: gets first value in iterator, returns true,
|
||||||
|
returns false otherwise
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *)
|
||||||
|
Function output/parameters: return value (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: getItemAtIndex
|
||||||
|
*/
|
||||||
|
bool getFirst( IteratorType *iterator, StateDataType *returned )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getLast
|
||||||
|
Process: gets last value in iterator, returns true,
|
||||||
|
returns false otherwise
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *)
|
||||||
|
Function output/parameters: return value (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: getItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool getLast( IteratorType *iterator, StateDataType *returned )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getNext
|
||||||
|
Process: gets next value in iterator if available, returns true,
|
||||||
|
otherwise, sets return value to empty, returns false
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *)
|
||||||
|
Function output/parameters: return value (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: getItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool getNext( IteratorType *iterator, StateDataType *returned )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: getPrevious
|
||||||
|
Process: gets previous value in iterator if available, returns true,
|
||||||
|
otherwise, sets return value to empty, returns false
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *)
|
||||||
|
Function output/parameters: return value (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: getItemAtIndex
|
||||||
|
*/
|
||||||
|
bool getPrevious( IteratorType *iterator, StateDataType *returned )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: insertAfterCurrentIndex
|
||||||
|
Process: inserts value immediately after currentIndex, if possible, returns true,
|
||||||
|
otherwise, returns false
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *),
|
||||||
|
value to be inserted (const StateDataType)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: insertItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool insertAfterCurrentIndex( IteratorType *iterator,
|
||||||
|
const StateDataType toBeInserted )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: insertAtCurrentIndex
|
||||||
|
Process: inserts value at currentIndex, if possible, returns true
|
||||||
|
otherwise, returns false
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *),
|
||||||
|
value to be inserted (const StateDataType)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: insertItemAtIndex
|
||||||
|
*/
|
||||||
|
bool insertAtCurrentIndex( IteratorType *iterator,
|
||||||
|
const StateDataType toBeInserted )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: removeAtCurrentIndex
|
||||||
|
Process: removes value at current index if possible, returns true,
|
||||||
|
otherwise, sets return value to empty, returns false
|
||||||
|
Function input/parameters: pointer to IteratorType (IteratorType *),
|
||||||
|
value to be remove (StateDataType *)
|
||||||
|
Function output/parameters: pointer to updated IteratorType (IteratorType *),
|
||||||
|
pointer to item removed (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: removeItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool removeAtCurrentIndex( IteratorType *iterator, StateDataType *removedItem )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
@ -1,25 +1,28 @@
|
||||||
CC = gcc -Wall
|
CC = gcc -Wall
|
||||||
SOURCES = PA04_Main.c BasicUtilities.c RoomUtilities.c CourseUtilities.c Console_IO_Utility.c File_Input_Utility.c File_Output_Utility.c
|
SOURCES = PA05_Main.c ArrayDataEngine.c IteratorUtility.c QueueUtility.c StackUtility.c Console_IO_Utility.c File_Input_Utility.c File_Output_Utility.c
|
||||||
OBJECTS = PA04_Main.o BasicUtilities.o RoomUtilities.o CourseUtilities.o Console_IO_Utility.o File_Input_Utility.o File_Output_Utility.o
|
OBJECTS = PA05_Main.o ArrayDataEngine.o IteratorUtility.o QueueUtility.o StackUtility.o Console_IO_Utility.o File_Input_Utility.o File_Output_Utility.o
|
||||||
|
|
||||||
# Uses the template structure defined in the TypicalUtils folder
|
# Uses the template structure defined in the TypicalUtils folder
|
||||||
|
|
||||||
all: PA04_Main
|
all: PA05_Main
|
||||||
|
|
||||||
PA04_Main: $(OBJECTS)
|
PA05_Main: $(OBJECTS)
|
||||||
$(CC) $(OBJECTS) -o PA04_Main
|
$(CC) $(OBJECTS) -o PA05_Main
|
||||||
|
|
||||||
PA04_Main.o: PA04_Main.c
|
PA05_Main.o: PA05_Main.c
|
||||||
$(CC) -c PA04_Main.c -o PA04_Main.o
|
$(CC) -c PA05_Main.c -o PA05_Main.o
|
||||||
|
|
||||||
BasicUtilities.o: BasicUtilities.c
|
ArrayDataEngine.o: ArrayDataEngine.c
|
||||||
$(CC) -c BasicUtilities.c -o BasicUtilities.o
|
$(CC) -c ArrayDataEngine.c -o ArrayDataEngine.o
|
||||||
|
|
||||||
CourseUtilities.o: CourseUtilities.c
|
QueueUtility.o: QueueUtility.c
|
||||||
$(CC) -c CourseUtilities.c -o CourseUtilities.o
|
$(CC) -c QueueUtility.c -o QueueUtility.o
|
||||||
|
|
||||||
RoomUtilities.o: RoomUtilities.c
|
IteratorUtility.o: IteratorUtility.c
|
||||||
$(CC) -c RoomUtilities.c -o RoomUtilities.o
|
$(CC) -c IteratorUtility.c -o IteratorUtility.o
|
||||||
|
|
||||||
|
StackUtility.o: StackUtility.c
|
||||||
|
$(CC) -c StackUtility.c -o StackUtility.o
|
||||||
|
|
||||||
Console_IO_Utility.o: Console_IO_Utility.c
|
Console_IO_Utility.o: Console_IO_Utility.c
|
||||||
$(CC) -c Console_IO_Utility.c -o Console_IO_Utility.o
|
$(CC) -c Console_IO_Utility.c -o Console_IO_Utility.o
|
||||||
|
|
@ -31,13 +34,13 @@ File_Output_Utility.o: File_Output_Utility.c
|
||||||
$(CC) -c File_Output_Utility.c -o File_Output_Utility.o
|
$(CC) -c File_Output_Utility.c -o File_Output_Utility.o
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJECTS) PA03_Main PA03_Main.out
|
rm -f $(OBJECTS) PA05_Main PA05_Main.out
|
||||||
|
|
||||||
clean_objects:
|
clean_objects:
|
||||||
rm -f $(OBJECTS)
|
rm -f $(OBJECTS)
|
||||||
|
|
||||||
run:
|
run:
|
||||||
./PA04_Main
|
./PA05_Main
|
||||||
|
|
||||||
run_win:
|
run_win:
|
||||||
PA04_Main
|
PA05_Main
|
||||||
|
|
|
||||||
99
PA05-1004/QueueUtility.c
Normal file
99
PA05-1004/QueueUtility.c
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
// 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 )
|
||||||
|
{
|
||||||
|
// 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 )
|
||||||
|
{
|
||||||
|
// return QueueType
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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 )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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 )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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 false (TEMP)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
95
PA05-1004/StackUtility.c
Normal file
95
PA05-1004/StackUtility.c
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
// header files
|
||||||
|
#include "StackUtility.h"
|
||||||
|
|
||||||
|
/* Data Structures
|
||||||
|
typedef struct StateArrayStruct
|
||||||
|
{
|
||||||
|
StateDataType *array;
|
||||||
|
|
||||||
|
int size, capacity;
|
||||||
|
} StackType; (aka StateArrayType)
|
||||||
|
Data Structures*/
|
||||||
|
|
||||||
|
// function implementations
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: clearStack
|
||||||
|
Process: clears StackType, returns NULL
|
||||||
|
Function input/parameters: pointer to stack type (StackType *)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: NULL
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: clearDataStructure
|
||||||
|
*/
|
||||||
|
StackType *clearStack( StackType *stackData )
|
||||||
|
{
|
||||||
|
// return NULL
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: createStack
|
||||||
|
Process: creates StackType, returns pointer to it
|
||||||
|
Function input/parameters: initial capacity (int)
|
||||||
|
Function output/parameters: none
|
||||||
|
Function output/returned: pointer to stack type (StackType *)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: createDataStructure
|
||||||
|
*/
|
||||||
|
StackType *createStack( int initialCapacity )
|
||||||
|
{
|
||||||
|
// return StackType
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: peekTop
|
||||||
|
Process: captures value at top of stack, returns,
|
||||||
|
returns true if successful,
|
||||||
|
otherwise, sets return value to empty, returns false
|
||||||
|
Function input/parameters: pointer to stack type (StackType *)
|
||||||
|
Function output/parameters: pointer to return value (StateDataType *)
|
||||||
|
Function output/returned: Boolean result of operation (bool)
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: getItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool peekTop( StateDataType *returnVal, const StackType stackData )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: popStack
|
||||||
|
Process: captures value at top of stack, removes and returns,
|
||||||
|
returns true if successful,
|
||||||
|
otherwise, sets return value to empty, returns false
|
||||||
|
Function input/parameters: pointer to stack type (StackType *)
|
||||||
|
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 popStack( StateDataType *returnVal, StackType *stackData )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Name: pushStack
|
||||||
|
Process: sets value at top of stack,
|
||||||
|
returns true if successful, false otherwise
|
||||||
|
Function input/parameters: pointer to stack type (StackType *)
|
||||||
|
Function output/parameters: value to be pushed (const StateDataType)
|
||||||
|
Function output/returned: Boolean result of operation
|
||||||
|
Device input/---: none
|
||||||
|
Device output/---: none
|
||||||
|
Dependencies: insertItemAtIndex, getListSize
|
||||||
|
*/
|
||||||
|
bool pushStack( StackType *stackData, const StateDataType toBePushed )
|
||||||
|
{
|
||||||
|
// return false (TEMP)
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue