はじめての C
「リンクリスト 2」
先に 進む前に、番兵について 少しだけ 述べてみましょう。
番兵には 3つの 型があります。 null ポインタ、ダミーノード (特別な、中身のない - invalid value - 項目で、番兵として 使うことが できます) それと 循環リンクです。
null ポインタ、それに ダミーノードは とても 簡単です。 でも、循環リンクって 何なんでしょう ?
循環リンクでは、リストを リング型の 構造体へと 変えて、いつ どこからでも、末尾を 見つけ出して - get the end - 次の項目へと 移ります。
リストの 各々の 型での、ほんの わずかな、基本となる 組み合わせ - basic conversation - は 次の とおりです。シンプルに 留めるために、ここでは (next ポインタのみの) 線形リスト - single linked list - を 使うことにします。
末尾が null ポインタ ▽
初期化:
list = NULL;
item の後に n を 挿入:
if (item == NULL) {
list = n;
list->next = NULL;
}
else {
n->next = item->next;
item->next = n;
}item の後を 削除:
save = item->next;
item->next = item->next->next;移動:
for (item = list; item != NULL; item = item->next)