Ich versuche, Linkedlist in C++ zu lernen, ich habe ein Problem, da Linkedlist nur 2 Elemente hinzufügt.LinkedList fügt nur zwei Elemente in C++ hinzu
Code:
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);
}
In der Ausgabe, es gibt mir nur 9 and 10
schätzen das heißt nur die letzten zwei Elemente. Sieht so aus, als würde es nur die Werte ersetzen. Aber ich verstehe es nicht. Für meinen temp
Knoten initialisiere ich ihn bereits zum nächsten, d. H. . Und in insert()
Funktion verwende ich eine if condition
, um nur den nächsten Knoten hinzuzufügen, wenn es NULL ist.
Irgendwelche Vorschläge?
Was haben Sie beobachtet, wenn sie mit dem Debugger durch yout Code Zeile für Zeile treten? –
Ich habe C++ seit Jahren nicht mehr benutzt, aber ist "* &" in diesem Fall wirklich korrekt? –
@StefanAgartsson Es braucht nur einen Verweis auf einen Zeiger – Garf365