I'm having trouble feeding in data and seeing if my code is working correctly. I am trying to code a reverse-linked list function using pointers, setters, and getters.
The trouble is that when I run my code, it breaks. Or, the display list doesn't work at all. Is my reverse syntax correct?
Here's my reverse function I want to highlight:
template<class ItemType>
void LinkedList<ItemType>::reverse()
{
Node<ItemType>* curPtr = headPtr;
Node<ItemType>* temp = NULL;
while(curPtr != NULL)
{
curPtr->setPrev(temp);
curPtr->setPrev(curPtr->getNext());
curPtr->setNext(temp);
curPtr->setPrev(curPtr->getPrev());
}
}
Here's my tester + displayList + main:
void displayList(ListInterface<string>* listPtr)
{
cout << "The list contains " << endl;
for (int pos = 1; pos <= listPtr->getLength(); pos++)
{
cout << listPtr->getEntry(pos) << " ";
} // end for
cout << endl << endl;
} // end displayList
void reverseListTester()
{
ListInterface<string>* reverseListPtr = new LinkedList<string>();
string data[] = {"one", "two", "three", "four", "five", "six"};
for (int i = 0; i < 6; i++)
{
if (reverseListPtr->insert(i + 1, data[i]))
{
cout << "Inserted " << reverseListPtr->getEntry(i + 1)
<< " at position " << (i + 1) << endl;
}
else
{
cout << "Cannot insert " << data[i] << " at position " << (i + 1)
<< endl;
}
} // end for
reverseListPtr->reverse();
displayList(reverseListPtr);
}
int main()
{
// listTester();
reverseListTester();
return 0;
} // end main