Я хочу создать связанный список с классами. У меня есть два класса: один LinkedList и другой LinkedNode. Моя проблема в том, что моя функция InsertAtEnd всегда удаляет текущий узел. Поэтому, когда я хочу распечатать связанный список, я ничего не вижу. Я знаю благодаря отладчику, что в функции InsertAtEnd мы не входим в цикл while, это проблема. Но после нескольких попыток я не могу решить свою проблему.Связанный список перезаписывает предыдущее значение
Это мой код:
void LinkedList::InsertAtend(int data)
{
LinkedNode* node = new LinkedNode();
node->setData(data); node->setNext(nullptr);
LinkedNode* tmp = _header;
if (tmp != NULL)
{
while (tmp->getNext() != nullptr)
{
tmp = tmp->getNext();
}
tmp->setData(data);
tmp->setNext(nullptr);
}
else
{
_header = node;
}
}
Мой класс LinkedNode:
class LinkedNode
{
public:
LinkedNode();
~LinkedNode();
void setData(int data);
void setNext(LinkedNode* next);
int getData() const;
LinkedNode* getNext() const;
private:
int _data;
LinkedNode* _next;
};
Мой класс LinkedList: #pragma раз #include #include "LinkedNode.h" с использованием патезрасе ;
class LinkedList
{
public:
LinkedList();
~LinkedList();
void PrintList();
void InsertAtend(int data);
void PrintList() const;
private:
LinkedNode* _header;
};
Благодарим за помощь!
Что? Можете ли вы объяснить больше? –
node = ваш новый узел для добавления; так почему вы меняете данные на любом другом узле? – UKMonkey
Что я могу сделать tmp = node? –