Mein Code in int main ist:Knoten am Ende der verketteten Liste (C++) hinzufügen?
node *run=NULL, *head=NULL, *temp=NULL;
for (int x = 1; x <= 10; x++)
{
temp = new node();
temp->value = x*10;
temp->next = NULL;
temp -> prev = NULL;
if (head == NULL)
{
head = temp;
}
else
{
run = head;
while (run->next != NULL)
{
run = run->next;
}
temp -> prev = run;
run->next = temp;
}
}
run = head;
cout << "ORIGINAL:" << endl;
while (run != NULL)
{
printf("%d\n", run->value);
run = run->next;
}
cout << endl << endl;
//=============== ADD AT THE END ========================
int xb = 105; //Value I want to add
run = head;
while (run -> next -> value > xb)
{
run = run -> next;
}
temp = new node();
temp -> prev = run;
temp -> value = xb;
temp -> next = NULL;
run -> next = temp;
run = head;
cout << "ADDED 105:" << endl;
while (run != NULL)
{
printf("%d\n", run->value);
run = run->next;
}
Ich habe das Hinzufügen des neuen Knotens, das Problem herauszufinden versucht (105) in meinem Code, aber nichts, was ich getan haben, scheint zu funktionieren. Das Original arbeitet völlig in Ordnung und Ausgänge
10 20 30 40 50 60 70 80 90 100
aber der Code zum Einfügen gibt nur
10 105
statt
10 20 30 40 50 60 70 80 90 100 105
Tun Sie sich einen Gefallen und vergeben Sie keinen neuen Knoten, bis Sie Ihre Verwaltungszeiger positioniert haben, wo der Knoten eingefügt werden soll. Ihr Setup von 'temp' unter der Schnittlinie ist einfach falsch und Sie verbinden' Temp-> next' nie richtig. Und fyi, Ihr Beitrag sollte das * erwartete * Sequenzergebnis sowie das gescheiterte Ergebnis enthalten. Das * vorherige * Ergebnis ist zwar interessant, aber nicht wirklich relevant. – WhozCraig