Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following is a non-recursive implementation of the function for given list o

ID: 3529627 • Letter: T

Question

The following is a non-recursive implementation of the function for given list of elements of type string. int sequentialSearch(string list[], int itemIndex, int lengthOfList, string item) { for (itemIndex=0; itemIndex < lengthOfList; itemIndex++) { if (list[itemIndex] == item) { return index; } } return -1; } Re-write the function implementation for this function so that it uses recursion #include #include #include #include using namespace std; int sequentialSearch(string list[], int itemIndex, int lengthOfList, string item); void printItemIndex(int index); int main(int argc, char **argv) { string starGateCharacters[] = { "O'Neill", "Mitchell", "Carter", "Teal'C", "Daniel Jackson", "Vala", "Gen. Landry", "Gen. Hammond", "Jonas", "Dr. Fraiser", "Col. Sheppard", "Dr. McKay", "Teyla", "Ronon", "Dr. Keller", "Dr. Beckett", "Richard Woolsey", "Elizabeth Weir", "Col. Caldwell", "Lt. Ford" }; int numberOfCharacters = 20; int index = -1; // Find the item print the index index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Kirk"); printItemIndex(index); // Find the item print the index index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Ronon"); printItemIndex(index); // Find the item print the index index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Luke Skywalker"); printItemIndex(index); // Find the item print the index index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Carter"); printItemIndex(index); // Find the item print the index index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "O'Neill"); printItemIndex(index); cout << " ** Press any key to continue ** "; getchar(); return 0; } /* * Function: sequentialSearch() * * Param: string list[] - array of items * string itemIndex - index of the first item in the list * string lengthOfList - total number of items in the list * string item - item to search for * * Returns: int - index in array if found, -1 if not found */ int sequentialSearch(string list[], int itemIndex, int lengthOfList, string item) { // TODO: Provide the implementation details so that the funciton // uses recursion. return -1; } void printItemIndex(int index) { if (index != -1) cout << "Item at index=" << index << endl; else cout << "Item not found!" << endl; return; }

Explanation / Answer

#include<iostream>

#include<string>

//#include

//#include

using namespace std;


int sequentialSearch(string list[], int itemIndex, int lengthOfList, string item);

void printItemIndex(int index);


int main(int argc, char **argv) {

string starGateCharacters[] = { "O'Neill", "Mitchell", "Carter", "Teal'C", "Daniel Jackson", "Vala",

"Gen. Landry", "Gen. Hammond", "Jonas", "Dr. Fraiser", "Col. Sheppard", "Dr. McKay",

"Teyla", "Ronon", "Dr. Keller", "Dr. Beckett", "Richard Woolsey", "Elizabeth Weir", "Col. Caldwell", "Lt. Ford"

};


int numberOfCharacters = 20;

int index = -1;


// Find the item print the index

index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Kirk");

printItemIndex(index);

// Find the item print the index

index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Ronon");

printItemIndex(index);

// Find the item print the index

index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Luke Skywalker");

printItemIndex(index);

// Find the item print the index

index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "Carter");

printItemIndex(index);

// Find the item print the index

index = sequentialSearch(starGateCharacters, 0, numberOfCharacters, "O'Neill");

printItemIndex(index);

cout << " ** Press any key to continue ** ";

cin.get();

return 0;

}

/*

* Function: sequentialSearch()

*

* Param: string list[] - array of items

* string itemIndex - index of the first item in the list

* string lengthOfList - total number of items in the list * string item - item to search for

*

* Returns: int - index in array if found, -1 if not found

*/

int sequentialSearch(string list[], int itemIndex, int lengthOfList, string item) {

// TODO: Provide the implementation details so that the funciton

// uses recursion.

if(itemIndex>=lengthOfList)

return -1;


if(list[itemIndex]==item)

return itemIndex;

else

return sequentialSearch(list,itemIndex+1,lengthOfList,item);


}


void printItemIndex(int index) {

if (index != -1)

cout << "Item at index=" << index << endl;

else

cout << "Item not found!" << endl;

return;

}