Я пытаюсь написать двойной круговой связанный список. Насколько я понимаю, код должен на самом деле создать круговой связанный список.
pPrev
указатель указывает обратно на этот временный узел. Это должно установить связь между временным и остальным списком. Тогда я делаю темп pPrev
идти к хвосту, а затем к хвосту pNext
перейдите к временному режиму, который я думаю, должен обрабатывать округлость А потом, чтобы закрыть, я меняю темп, чтобы стать новым руководителем. Когда я печатаю из указателя головы, единственное, что печатает, это первый узел снова и снова. Я не вижу, где я иду не так с этой реализацией. Если кто-нибудь мог бы дать мне и советы о том, где я иду не так, я был бы очень признателен. Спасибо заранее
void addNodeToStart(Node*& pHead, Node*& pTail, int input) {
Node* pTemp = new Node;
pTemp->data = input;
if (pHead == NULL) {
pTemp->data = input;
pTemp->pNext = pTemp;
pTemp->pPrev = pTemp;
pHead = pTemp;
pTail = pTemp;
} else {
pTemp->pNext = pHead;
pHead->pPrev = pTemp;
pTemp->pPrev = pTail;
pTail->pNext = pTemp;
}
pHead = pTemp;
}
Задача ещё не решена.