単連結リストの整列 #21 名前とスコアが要素のリストのインタフェイス

ナル終端文字列の名前とint型のスコアを格納データとする要素を持つ単連結リストのインタフェイスを考える。

sclist.h
...snip
typedef struct tag_sclist *sclist_t;
typedef struct tag_scdata *scdata_t;
typedef struct tag_sciter *sciter_t;
...snip

リスト、要素、および、リスト中の全要素を走査するための反復子、
それぞれを実装するために必要なデータを構造体でまとめる。
タグtag_sclistがリスト、tag_scdataが個々の要素、tag_sciterが反復子のデータをまとめた構造体である。
その構造体へのポインタ型のみを不完全型として利用者に提供して実装の詳細を隠蔽する。
すなわち、それぞれ、sclist_t型、scdata_t型、sciter_t型としている。
リスト操作はこれらの抽象型を引数とする関数を通して行う。