diff --git a/PA05-1004/ArrayDataEngine.c b/PA05-1004/ArrayDataEngine.c index 3e726ce..9e6eefd 100644 --- a/PA05-1004/ArrayDataEngine.c +++ b/PA05-1004/ArrayDataEngine.c @@ -190,7 +190,7 @@ bool getItemAtIndex( StateDataType *returnVal, const StateArrayType stateData, int listIndex ) { // check stateData size against list index - if(listIndex < getListSize(stateData) && listIndex >=0) + if(listIndex < getListSize(stateData) && listIndex >= 0) { // copy data into returnVal deepCopyData(returnVal, stateData.array[listIndex]); diff --git a/PA05-1004/IteratorUtility.c b/PA05-1004/IteratorUtility.c index 9ac5c05..7f88975 100644 --- a/PA05-1004/IteratorUtility.c +++ b/PA05-1004/IteratorUtility.c @@ -24,6 +24,10 @@ Dependencies: clearDataStructure, free */ IteratorType *clearIterator( IteratorType *iterator ) { + // clear the encapsulated data structure + clearDataStructure(iterator->iterData); + // clear the rest of the data structure + free(iterator); // return NULL return NULL; } @@ -41,8 +45,14 @@ Dependencies: malloc, createDataStructure */ IteratorType *createIterator( int initialCapacity ) { + IteratorType *iteratorDataStructure; + // create the entire data structure + iteratorDataStructure = malloc(sizeof(IteratorType)); + iteratorDataStructure->currentIndex = 0; + // create the encapsulated data structure + iteratorDataStructure->iterData = createDataStructure(initialCapacity); // return IteratorType - return NULL; + return iteratorDataStructure; } /* @@ -58,8 +68,8 @@ Dependencies: getItemAtIndex */ bool getFirst( IteratorType *iterator, StateDataType *returned ) { - // return false (TEMP) - return false; + // return function true/false if value possible + return getItemAtIndex(returned, *iterator->iterData, 0); } /* @@ -75,8 +85,8 @@ Dependencies: getItemAtIndex, getListSize */ bool getLast( IteratorType *iterator, StateDataType *returned ) { - // return false (TEMP) - return false; + // return function to see if possible + return getItemAtIndex(returned, *iterator->iterData, getListSize(*iterator->iterData)); } /* @@ -92,7 +102,13 @@ Dependencies: getItemAtIndex, getListSize */ bool getNext( IteratorType *iterator, StateDataType *returned ) { - // return false (TEMP) + // check to see if the currentIndex value is not size. + if(iterator->currentIndex != getListSize(*iterator->iterData)) + { + iterator->currentIndex = iterator->currentIndex + 1; + return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex); + } + // return false return false; } @@ -109,7 +125,13 @@ Dependencies: getItemAtIndex */ bool getPrevious( IteratorType *iterator, StateDataType *returned ) { - // return false (TEMP) + // check to see if the currentIndex value is not zero. + if(iterator->currentIndex != 0) + { + iterator->currentIndex = iterator->currentIndex - 1; + return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex); + } + // return false return false; } @@ -128,8 +150,8 @@ Dependencies: insertItemAtIndex, getListSize bool insertAfterCurrentIndex( IteratorType *iterator, const StateDataType toBeInserted ) { - // return false (TEMP) - return false; + // return function true/false based on possibility + return insertItemAtIndex(iterator->iterData, toBeInserted, iterator->currentIndex + 1); } /* @@ -147,8 +169,8 @@ Dependencies: insertItemAtIndex bool insertAtCurrentIndex( IteratorType *iterator, const StateDataType toBeInserted ) { - // return false (TEMP) - return false; + // return true/false based on if the function deems worthy + return insertItemAtIndex(iterator->iterData, toBeInserted, iterator->currentIndex); } /* @@ -166,6 +188,5 @@ Dependencies: removeItemAtIndex, getListSize */ bool removeAtCurrentIndex( IteratorType *iterator, StateDataType *removedItem ) { - // return false (TEMP) - return false; + return removeItemAtIndex(iterator->iterData, removedItem, iterator->currentIndex); } \ No newline at end of file diff --git a/PA05-1004/PA05_Main b/PA05-1004/PA05_Main index 62a8033..13fb324 100755 Binary files a/PA05-1004/PA05_Main and b/PA05-1004/PA05_Main differ diff --git a/PA05-1004/QueueUtility.c b/PA05-1004/QueueUtility.c index cc3258f..800195d 100644 --- a/PA05-1004/QueueUtility.c +++ b/PA05-1004/QueueUtility.c @@ -24,6 +24,8 @@ Dependencies: clearDataStructure */ QueueType *clearQueue( QueueType *queue ) { + // clear the entire data structure + clearDataStructure(queue); // return NULL return NULL; } @@ -41,8 +43,11 @@ Dependencies: createDataStructure */ QueueType *createQueue( int initialCapacity ) { + // create the data structure + QueueType *queueDataStructure; + queueDataStructure = createDataStructure(initialCapacity); // return QueueType - return NULL; + return queueDataStructure; } /* diff --git a/PA05-1004/StackUtility.c b/PA05-1004/StackUtility.c index 799145c..359558b 100644 --- a/PA05-1004/StackUtility.c +++ b/PA05-1004/StackUtility.c @@ -24,6 +24,8 @@ Dependencies: clearDataStructure */ StackType *clearStack( StackType *stackData ) { + // clear the entire data structure + clearDataStructure(stackData); // return NULL return NULL; } @@ -40,8 +42,11 @@ Dependencies: createDataStructure */ StackType *createStack( int initialCapacity ) { + // create the data structure + StackType *stackDataStructure; + stackDataStructure = createDataStructure(initialCapacity); // return StackType - return NULL; + return stackDataStructure; } /* @@ -59,6 +64,7 @@ Dependencies: getItemAtIndex, getListSize bool peekTop( StateDataType *returnVal, const StackType stackData ) { // return false (TEMP) + return false; } /* @@ -76,6 +82,7 @@ Dependencies: removeItemAtIndex, getListSize bool popStack( StateDataType *returnVal, StackType *stackData ) { // return false (TEMP) + return false; } /* @@ -92,4 +99,5 @@ Dependencies: insertItemAtIndex, getListSize bool pushStack( StackType *stackData, const StateDataType toBePushed ) { // return false (TEMP) + return false; } \ No newline at end of file