Я пытаюсь изучить связанный список в C++, перед этим проблема связана с тем, что связанный список добавляет только два элемента.LinkedList добавляет только два элемента в C++
код:
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
я уже инициализирую его до следующего i.e temp->next = NULL
. И в функции insert()
, я использую if condition
, чтобы добавить только следующий узел, если его NULL.
Любые предложения?
Что вы наблюдали при пошаговом через YOUT код построчно с помощью отладчика? –
Я не использовал C++ в течение многих лет, но «* &» действительно прав в этом случае? –
@StefanAgartsson Он просто берет ссылку на указатель – Garf365