はじめての C
KandR.2nd の 175ページ (6.6 テーブル参照) に、次のような記述を みつけた。
(関数) lookup に 含まれる この for ループは、連結リストを たどっていって (データの) 探索を 行なうときの 慣用句 (<-典型的な処理方法) である。
まだ リスト内の target を 捜す、という コードは 書いたことはないけど、これは 使えるかもしれない。
- struct List {
- struct List *next;
- char *name;
- };
- /* look_up : リスト中で s を 捜す */
- struct List *look_up(char *s)
- {
- struct List *np;
- for (np = head; np != NULL; np = np->next)
- /* みつかったときは そのポインタを返す */
- if (strcmp(s, np->name) == 0)
- return np;
- /* なければ NULL が 返される */
- return NULL;
- }