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が表示されたので目標達成!!