• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:連結リストについて)

連結リストについての疑問

このQ&Aのポイント
  • 連結リストの構造体宣言と順番をたどる方法についての疑問
  • p->valueの値が変動する理由と、headerの定義方法についての疑問
  • 連結リストの勉強中にわからない箇所があるので質問

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

struct CELLの変数を定義する必要があります。 struct CELL mika; struct CELL shouta; struct CELL kazu; で連結リストを作るとこうなります。 mika.value = 123; mika.next = &shouta; shouta.value = 456; shouta.next = &kazu; kazu.value = 789; kazu.next = NULL; 連結リストの最後の要素は「nextをNULLにする」必要があります。(for文の終了条件) >なぜこれでp->valueの値が変動していくのですか? forの最後(p=p->next)で代入しているので、p自身が変わっていきます。 pが変わるのでp->valueも変わっていきます。 >それと上記の(1)の書き方でこのforを回すとき、 >headerはどのように定義すればよいのですか? 「headerが先頭の要素を指す」ようにして下さい。 上の例ならmikaが先頭なのでheader = &mika; です。 ※図でもうまく伝わらないかもしれませんが、ないよりかはマシなので添付します。

kinkotu129
質問者

お礼

ありがとうございます。 理解できてすっきりしました。 もうちょっと構造体とポインタを勉強してから、アルゴリズムの本を読んだほうがいいかもしれないですね。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>なぜこれでp->valueの値が変動していくのですか? p = p->next という式で、連結リストを順繰りにたどっているからです。

関連するQ&A