"Completed" PA05
(aka don't want to spend anymore time on it) +- ArrayDataEngine.c +- IteratorUtility.c +- QueueUtility.c +- StackUtility.c
This commit is contained in:
parent
a9a217cc45
commit
770212bc8e
5 changed files with 75 additions and 45 deletions
|
|
@ -68,8 +68,10 @@ Dependencies: getItemAtIndex
|
|||
*/
|
||||
bool getFirst( IteratorType *iterator, StateDataType *returned )
|
||||
{
|
||||
// set currentIndex to 0
|
||||
iterator->currentIndex = 0;
|
||||
// return function true/false if value possible
|
||||
return getItemAtIndex(returned, *iterator->iterData, 0);
|
||||
return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -85,8 +87,10 @@ Dependencies: getItemAtIndex, getListSize
|
|||
*/
|
||||
bool getLast( IteratorType *iterator, StateDataType *returned )
|
||||
{
|
||||
// set currentIndex to getListSize
|
||||
iterator->currentIndex = getListSize(*iterator->iterData);
|
||||
// return function to see if possible
|
||||
return getItemAtIndex(returned, *iterator->iterData, getListSize(*iterator->iterData));
|
||||
return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -106,7 +110,8 @@ bool getNext( IteratorType *iterator, StateDataType *returned )
|
|||
if(iterator->currentIndex != getListSize(*iterator->iterData))
|
||||
{
|
||||
iterator->currentIndex = iterator->currentIndex + 1;
|
||||
return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex);
|
||||
return getItemAtIndex(returned, *iterator->iterData,
|
||||
iterator->currentIndex);
|
||||
}
|
||||
// return false
|
||||
return false;
|
||||
|
|
@ -129,7 +134,8 @@ bool getPrevious( IteratorType *iterator, StateDataType *returned )
|
|||
if(iterator->currentIndex != 0)
|
||||
{
|
||||
iterator->currentIndex = iterator->currentIndex - 1;
|
||||
return getItemAtIndex(returned, *iterator->iterData, iterator->currentIndex);
|
||||
return getItemAtIndex(returned, *iterator->iterData,
|
||||
iterator->currentIndex);
|
||||
}
|
||||
// return false
|
||||
return false;
|
||||
|
|
@ -151,7 +157,8 @@ bool insertAfterCurrentIndex( IteratorType *iterator,
|
|||
const StateDataType toBeInserted )
|
||||
{
|
||||
// return function true/false based on possibility
|
||||
return insertItemAtIndex(iterator->iterData, toBeInserted, iterator->currentIndex + 1);
|
||||
return insertItemAtIndex(iterator->iterData, toBeInserted,
|
||||
iterator->currentIndex + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -170,7 +177,8 @@ bool insertAtCurrentIndex( IteratorType *iterator,
|
|||
const StateDataType toBeInserted )
|
||||
{
|
||||
// return true/false based on if the function deems worthy
|
||||
return insertItemAtIndex(iterator->iterData, toBeInserted, iterator->currentIndex);
|
||||
return insertItemAtIndex(iterator->iterData, toBeInserted,
|
||||
iterator->currentIndex);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -188,5 +196,18 @@ Dependencies: removeItemAtIndex, getListSize
|
|||
*/
|
||||
bool removeAtCurrentIndex( IteratorType *iterator, StateDataType *removedItem )
|
||||
{
|
||||
return removeItemAtIndex(iterator->iterData, removedItem, iterator->currentIndex);
|
||||
// need to check if the last element is being removed
|
||||
if(iterator->currentIndex == getListSize(*iterator->iterData))
|
||||
{
|
||||
// move the currentIndex back one,
|
||||
// return removeItemAtIndex with currentIndex + 1
|
||||
iterator->currentIndex = iterator->currentIndex - 1;
|
||||
return removeItemAtIndex(iterator->iterData, removedItem,
|
||||
iterator->currentIndex + 1);
|
||||
// gives the effect like it removed,
|
||||
// but doesn't screw up the rest of the program.
|
||||
}
|
||||
// otherwise, remove the item
|
||||
return removeItemAtIndex(iterator->iterData, removedItem,
|
||||
iterator->currentIndex);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue