C++でリンクリストを学習しようとしていますが、リンクリストは2つの要素しか追加していないため、問題に直面しています。LinkedListはC++で2つの要素しか追加しません
コード:出力で
struct Node {
int data1;
Node* next;
};
void firstElement(Node *&head, int d)
{
Node* temp = new Node;
temp->data1 = d;
temp->next = NULL;
head = temp;
}
void insert(Node *&node, int data)
{
Node* temp = new Node;
temp->data1 = data;
temp->next = NULL;
while(node)
{
if(node->next == NULL)
{
node->next = temp;
return;
}
node = node->next;
}
}
void display(Node *&node)
{
while(node != NULL)
{
cout << node->data1 << endl;
node = node->next;
}
}
int main()
{
Node* head;
firstElement(head, 1);
insert(head, 2);
insert(head, 3);
insert(head, 4);
insert(head, 5);
insert(head, 6);
insert(head, 7);
insert(head, 8);
insert(head, 9);
insert(head, 10);
display(head);
}
は、それだけで私は9 and 10
すなわち、最後の2つの要素を評価できます。それはちょうど値を置き換えているように見えます。しかし、私はそれを得ていない。私のtemp
ノードについては、すでにそれを次のノードに初期化しています。つまり、temp->next = NULL
です。 そして、関数では、if condition
を使用して、NULLの場合にのみ次のノードを追加します。
提案がありますか?
デバッガと線でyoutはコード行をステップ実行するとき、あなたは何を観察しましたか? –
私は何年もC++を使用していませんが、この場合は "*&"は本当に正しいですか? –
@StefanAgartssonそれはちょうどポインタへの参照を取るだけです。 – Garf365