I mit verknüpften Listen in C von Position zu verstehen versuchen Einfügen ich diesen Code über http://www.cprogramming.com/snippets/source-code/singly-linked-list-insert-remove-add-count gefunden:Verständnis Einfügen von Position mit verknüpften Listen
void addafter(int num, int loc)
{
int i;
struct node *temp,*left,*right;
right=head;
for(i=1;i<loc;i++)
{
left=right;
right=right->next;
}
temp=(struct node *)malloc(sizeof(struct node));
temp->data=num;
left->next=temp;
left=temp;
left->next=right;
return;
}
Es kompiliert und funktioniert gut, aber ich verstehe nicht, dieser Teil:
left->next=temp;
left=temp;
left->next=right;
Wenn der nächste Knotenzeiger in der linken Punkte Temp dann wäre es nicht mit links = Temp erhalten überschrieben? Könnten Sie das folgendermaßen umschreiben:
left->next=temp;
temp->next=right
Kann mir jemand das bitte erklären? Vielen Dank.
Ja, einige Ihrer Code ändern, Ihre Alternative ist genauso gültig wie der Code Originalen. –
Warum also left = temp verwenden? – user3283146
Dafür müssen Sie den Autor fragen, es ist nichts, was irgendjemand sonst beantworten könnte. Ich sehe keinen Grund dafür. –