与您的问题无关,我知道这不是代码审查部分,但这是我的一些想法。
在您的插入功能中
DoublyListNode < T > *newPtr = new DoublyListNode< T >(tempData);
newPtr->nextPtr = newPtr->prePtr = NULL;
if(newPtr == NULL)
{
cout << "Insert cannot allocate memory\n";
} //end if
应该
DoublyListNode < T > *newPtr = new DoublyListNode< T >(tempData);
if(newPtr == NULL)
{
cout << "Insert cannot allocate memory\n";
}else{
newPtr->nextPtr = newPtr->prePtr = NULL;
// rest of code
另外,在您的查找功能中
DoublyListNode< T > *currentPtr = head;
for(int i = 1; i < index; i++)
{
currentPtr = currentPtr->nextPtr;
} // end for
应该
DoublyListNode< T > *currentPtr = head;
for(int i = 1; currentPtr && (i < index); i++)
{
currentPtr = currentPtr->nextPtr;
} // end for
此外,由于您使用的是 C++,请考虑使您的索引基于 0(查看您的代码,它们是基于 atm 1 的)