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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.