c言語での単一連結リスト ①表示編

はじめに

c言語での単一連結リストをステップバイステップで書いてみて,構造を学ぶ.
以下の手順で作っていく♪
①「表示編」リストの情報を表示する機能を実装
②「挿入編」リストに情報を追加する機能を実装
③「削除編」リストの情報を削除する機能を実装

目標

[5| 次のノードのアドレス]→ [7|次のノードのアドレス]→ [10|NULL] 上のリストを手動で書き,リストの内容(今回は数字)を表示する関数を作成する。

Step1.1: 手動でのリストの作成と表示

以下のようにmain.cを作成。

コンパイルして、実行してみる.

5 0x7ffee390c4f0
7 0x7ffee390c4e0
10 (nil)

1列目には,あらかじめ決めておいた数字が書かれていて2列目にはアドレスっぽいのが書かれてるから大丈夫なはず.(nil)はよくわからん.

Step1.2: ノードの内容を順々に表示する

最初のノード(headと呼ぶ)から第2のノードへ,第2のノードから第3のノード,といったように順々に辿って内容を表示してみる.
以下のようにmain.cを修正.

実行した結果、5,7,10が出力されたからOK.

Step1.3: ループを使って簡単に書く

ノードの数だけprintf関数を書くのは大変なので,ループを使う.
以下のようにmain.cを修正.

実行した結果、5,7,10が出力されたからOK.

Step4:関数として書き直す

流用できるように関数にまとめる.ついでにノードの個数を数える機能を付け加える.
以下のようにmain.cを修正。

実行した結果、5,7,10が出力されたからOK.

Step5:ファイル分割する

構造体の宣言や関数を別ファイルにまとめちゃう.
以下の4つのファイルを作成。

これでコンパイルし,実行すると5,7,10が表示されたので目標達成!!