はじめての C

KandR.2nd の 175ページ (6.6 テーブル参照) に、次のような記述を みつけた。

(関数) lookup に 含まれる この for ループは、連結リストを たどっていって (データの) 探索を 行なうときの 慣用句 (<-典型的な処理方法) である。

まだ リスト内の target を 捜す、という コードは 書いたことはないけど、これは 使えるかもしれない。

  1. struct List {
  2. struct List *next;
  3. char *name;
  4. };
  5. /* look_up : リスト中で s を 捜す */
  6. struct List *look_up(char *s)
  7. {
  8. struct List *np;
  9. for (np = head; np != NULL; np = np->next)
  10. /* みつかったときは そのポインタを返す */
  11. if (strcmp(s, np->name) == 0)
  12. return np;
  13. /* なければ NULL が 返される */
  14. return NULL;
  15. }