2016-10-13 6 views
-1

ループ条件内で、単一のリストをトラバースしている間に、temp!= NULLとtemp-next!= NULLの違いは何ですか?例単一のリストをトラバースする

while(temp != NULL) 
    { 
     ...... 
     ...... 
    } 

while(temp->next != NULL) 
    { 
     ...... 
     ...... 
    } 

のために私は2つの違いを理解していません。

答えて

0

コンテキストから、この回答は、tempがリンクリストのノードであることを前提としています。

temp->next != NULLは、tempの後にノードがある場合(つまり、tempがリストの最後のノードでない場合)にtrueを返します。例として、このリストを考えてみましょう。私たちはtemp = a->nextをすれば

a -> b -> c -> NULL 

はその後、一時はBである、とtemp->next != NULLは、c(ないNULL)ため、真と評価さBの後に来ます。

temp != NULLは、temp自身がリスト内のノードである場合にtrueを返します。何らかの理由により、あなたがリストをあまりにも遠くまで横断してしまった場合、これは当てはまりません。上記と同じリストを使用:temp = c->nextを実行すると、temp != NULLはfalseと評価されます。 TEMPはTEMP後ノードがNULL なるまで

  • while(temp->next != NULL)が実行NULLになるまで

    • while(temp != NULL)...は実行されます。次のようにリストとの間の差である、ということを理解

  • 関連する問題