c言語 配列と線形リスト

1.配列とは
 配列は、同じデータ型の要素を番号(添字:インデックス)順に並べたものを表します。
 添字は、C言語を含む多くの言語は0スタートとなります。
 (例)要素数100のときの1次元配列a、a[0]・・・a[99]

配列のサンプル(1)
list_sample1.c

例では、配列の要素数MAX_SIZE変数を定義します。insert関数はリストの末尾に新しい要素を挿入し、remov関数は特定のインデックスの要素を削除します。get関数は特定のインデックスの要素を返し、search関数は特定の値を持つ要素を検索してそのインデックスを返します。
 ここでは要素はint型としていますが、他のデータ型の要素を格納する必要がある場合は、配列listのデータ型と関数のパラメーターと戻り値を変更する必要があります。

実行結果

配列のサンプル(2)
list_sample2.c

 この例では構造体を作成して、構造体を呼び出して配列を操作します。

実行結果

2.線形リスト
 線形リストは、データと「次のデータを指し示すポインタ(場所)」が入ったノードと呼ばれる要素がポインタでつながっているデータ構造で、隣接するデータ同士をポインタで連結して表現します。

線形リストのサンプル
list_sample3.c

データとリスト内の次のノードへのポインターを保持するために、Nodeと呼ばれる構造体を定義します。関数insertはリストの最後に新しいノードを追加し、関数displayは各ノードのデータを出力します。
 main関数では、3 つの値を挿入し、結果のリストを表示します。

実行結果

end