クラスでリンクされたリストを作成したいと思います。私はLinkedListとLinkedNodeという2つのクラスを持っています。私の問題は、私の関数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:名前空間stdを使用して、一度 の#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? –