Я пытаюсь скомпилировать программу с двойными связями, и в функции вставки возникает следующая ошибка:
DoublyLinkedList.cpp:23:26: error: cannot convert 'DoubleNode<int>' to 'DoubleNode<int>*' in initialization
23 | DoubleNode<ItemType>* prevPtr = getAtPos(position - 1);
| ^~~~~~~
| |
| DoubleNode<int>
Соответствующие строки кода:
DoubleNode<ItemType>* newNodePtr = new DoubleNode<ItemType>(item);
if (position == 1){
// insert new double node at the begining of the chain
newNodePtr->setNext(headPtr);
headPtr = newNodePtr;
}
else{
// find node that will be before new node
DoubleNode<ItemType>* prevPtr = getAtPos(position - 1);
newNodePtr->setNext(prevPtr->getNext());
prevPtr->getNext()->setPrev(newNodePtr);
newNodePtr->setPrev(prevPtr);
prevPtr->setNext(newNodePtr);
Функция getAtPost:
template<class ItemType>
DoubleNode<ItemType> DoublyLinkedList<ItemType>::getAtPos(const int& position) const
{
// count from begining of chain
DoubleNode<ItemType>* curPtr = headPtr;
for (int i = 1; i < position; i++){
curPtr = curPtr->getNext();
}
return *curPtr;
} // end getAtPos