連結リスト(Linked List)を使って要素を昇順に並べて管理したいとします。通常は以下のコードのように、リストの先頭を示す要素を用意することで、リストがNULLのときも、そうでない場合も、場合分けをせずに実装することが可能です。 #include <stdio.h> #include <stdlib.h> typedef struct list { struct list *next; int value; } list_t; list_t head; /* リストの先頭 */ void insert(int a) { list_t *p; /* 先行するポインタ */ list_t *q; /* 手前のポインタ */ list_t *new; for (q = &head, p = head.next; p != NULL; q = p, p = p->next) if (a <