![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
連結リストについて
アルゴリズムの本を買って勉強しているのですが、わからない箇所がありまして。
構造体宣言で
(1)struct CELL {
struct CELL *next;
int val;
};
(2)struct CELL {
struct CELL *next;
int val;
}*header;
順番をたどって行く書き方で
struct CELL *p;
for (p=header; p!=NULL; p=p->next)
printf("%d\n", p->value);
なぜこれでp->valueの値が変動していくのですか?
それと上記の(1)の書き方でこのforを回すとき、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; です。
※図でもうまく伝わらないかもしれませんが、ないよりかはマシなので添付します。
![「連結リストについて」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/1306518_5497edda17d59/M.jpg)
ありがとうございます。
理解できてすっきりしました。
もうちょっと構造体とポインタを勉強してから、アルゴリズムの本を読んだほうがいいかもしれないですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# leetcode21 1 2022/04/21 11:53
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
ホームページから意見を送るsen...
-
途中まで出来ているのですが‥(D...
-
セレクトボックスについて
-
Perl/CGIでスロットマシンを作...
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
実行時エラー 3020の対策
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
-
<SELECT>タグの折り返し
-
FindFirst を複数条件で検索
-
perlで作ったcgiがIE6で西ヨー...
-
セレクトメニューで2つの項目...
-
select や option のCSS設定
-
プルダウンメニューで中央表示
-
sendmailで複数の宛先にメール...
-
検索機能の作成で困っています
-
PythonのExperimentに関する質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
Perlでアルファベットを数...
-
途中まで出来ているのですが‥(D...
-
フォームで入力した値を表示し...
-
linq で 楽天ウェブサービスのX...
-
リロード後にプルダウンの選択...
-
CGIからメールに書き出しする際...
-
map(STL)でinsertを行いたいで...
-
半角スペースが有効にならない。
-
CGI(Perl)で、Net::FTPを使いたい
-
iteratorの再利用について
-
Visual Basicで作成したプログ...
-
クリックしたら順番に並び替わ...
-
ラズパイで感圧センサーを動か...
-
デコードできない時があります><
-
パターンマッチで変数でマッチ...
-
gpioを使ってSPIをシミュレーシ...
-
Application.ScreenUpdating = ...
おすすめ情報