Linked List のコーディングを学んでいるときに、これら 2 つのことに出くわし、それらの違いが理解できず、当惑しました。私が学んできた本は、Linked List の最後に新しいノードを追加する部分で「temp=*q」を説明しています。
したがって、リストが空でない場合、つまり条件
if(*q==NULL)
が失敗した場合、次の部分が実行されます。temp
ステートメントを介してリストの最初のノードを指すようになりました
temp=*q;
tempを使用して、ステートメントを使用してリンクされたリスト全体をトラバースしました。
while (temp->link!=NULL) temp=temp->link;
リストの先頭に新しいノードが追加されているコーディングの後半では、次のように表示されます。
ここで、ノードの
link
一部が既存の最初のノードを指すようにする必要があります。これは、声明を通じて達成されました。
temp->link=*q;
問題は、これら 2 つのコードを区別できないことです。それらは両方の文脈で同じ役割を果たしているのではないでしょうか? 言及に関連するtemp
のは、リストでのすべての更新作業に使用される一時ノードで*q
あり、開始ノードです。