From 4acd4386fefab32d205436c8137c0fa3f79e51f0 Mon Sep 17 00:00:00 2001 From: cdez Date: Mon, 2 Oct 2023 19:09:53 -0700 Subject: [PATCH] Completed ArrayDataEngine +- ArrayDataEngine.c +- PA05_Main --- PA05-1004/ArrayDataEngine.c | 47 ++++++++++++++++++++++++++++++++---- PA05-1004/PA05_Main | Bin 33528 -> 37624 bytes 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/PA05-1004/ArrayDataEngine.c b/PA05-1004/ArrayDataEngine.c index 87041d7..3e726ce 100644 --- a/PA05-1004/ArrayDataEngine.c +++ b/PA05-1004/ArrayDataEngine.c @@ -61,10 +61,19 @@ Dependencies: privateCheckForResize, deepCopyData */ void copyDataList( StateArrayType *dest, const StateArrayType src ) { - // check for resize - // check to see if the array dest capacity is less than source + int copyIterator; + privateCheckForResize(dest); + // check for resize if the destination capacity is less than source + if(dest->capacity == src.capacity) + { + dest->size = src.size; // if it is, then size the dest to what source was // copy the data from source to dest using deepCopy + for(copyIterator = 0; copyIterator < src.size; copyIterator++) + { + deepCopyData(&dest->array[copyIterator], src.array[copyIterator]); + } + } // no return, void } @@ -181,11 +190,17 @@ bool getItemAtIndex( StateDataType *returnVal, const StateArrayType stateData, int listIndex ) { // check stateData size against list index + if(listIndex < getListSize(stateData) && listIndex >=0) + { // copy data into returnVal + deepCopyData(returnVal, stateData.array[listIndex]); // return true + return true; + } // otherwise, // use setItemToEmpty for returnVal - // return false (TEMP) + setItemToEmpty(returnVal); + // return false return false; } @@ -223,12 +238,24 @@ Dependencies: checkForResize bool insertItemAtIndex( StateArrayType *stateData, StateDataType toBeInserted, int insertIndex ) { + int insertIterator; // check for resize + privateCheckForResize(stateData); // check to see if index is within size + if(insertIndex < getListSize(*stateData) && insertIndex >= 0) + { // shift elements right of index to right + for(insertIterator = insertIndex; insertIterator < getListSize(*stateData); insertIterator++) + { + // put the element into element + 1 + stateData->array[insertIterator + 1] = stateData->array[insertIterator]; + } // insert element at index + stateData->array[insertIndex] = toBeInserted; // return true - // return false (TEMP) + return true; + } + // return false return false; } @@ -336,10 +363,20 @@ Dependencies: none bool removeItemAtIndex( StateArrayType *stateData, StateDataType *removedItem, int removeIndex ) { + int removalIterator; // check to see if index is within size + if(removeIndex < getListSize(*stateData) && removeIndex >= 0) + { // for loop (iterate through list starting at the index) - // shift the next element to current element. + for(removalIterator = removeIndex; removalIterator < getListSize(*stateData); removalIterator++) + { + // shift the next element to current element. + stateData->array[removalIterator] = stateData->array[removalIterator + 1]; + } // return true once done + return true; + } + // return false if item not removable? return false; } diff --git a/PA05-1004/PA05_Main b/PA05-1004/PA05_Main index 183f669027711db632fd78d0e167f0b633b5cebd..62a80337f6f7de81caad48c4924715ea2d82b304 100755 GIT binary patch delta 9605 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 delta 10237 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 TE}_Q8G5)L7TB1y}qb~N}!42*m