В настоящее время я пытаюсь написать двусвязный класс списка на языке c ++ для cygwin64.Моя функция addToTail (чтобы добавить узел в конец списка) вызывает дамп ядра.Я определил строку кода, которая делает это, но не может понять, почему.
Я очистил свой код до самой простой формы, чтобы решить, где проблема.Я определил его как строку current->setNext(temp);
.
ниже приведен весь соответствующий код
class Node
{
private:
classType data;
Node* next;
Node* previous;
public:
void Node::setData(const valueType& newData)
{
data = newData;
}
void Node::setNext(Node* newNext)
{
next = newNext;
}
void Node::setPrevious(Node* newPrevious)
{
previous = newPrevious;
}
};
class LinkedList
{
private:
Node* tail;
Node* head;
Node* current;
public:
void LinkedList::addToTail(const classType& newTail)
{
Node* temp = new Node;
temp->setData(newTail);
current = tail;
temp->setPrevious(current);
current->setNext(temp);
tail = temp;
delete temp;
}
};
Ожидаемые результаты функции - добавить новый узел в конецсписок.Что происходит, это вызывает дамп ядра.