その応用として、集合処理を考えてみる。2進数を用いた集合計算リストによる集合の前に、もっと簡単な集合処理を考える。和集合、積集合が考えられるので、簡単となる。bc}このような、2進数を用いた処理で有名なものとして、エラトステネスのふるいによる素数がある。素数で無いと判断した2進数の各桁に1の目印をつけていく方式である。前述の方法は、リストに含まれる/含まれないを、2進数の0/1で表現する方式である。要素が上限となってしまう。(32bitコンピュータ,gccの場合)しかし、リスト構造であれば、リストの要素として扱うことで、要素件数は自由に扱える。簡単なプログラムでリストの処理が記述できる。加えていく...という考えでプログラムを作ると以下のようになる。;}例題として、和集合、差集合などを考えてみよう。リストの共有と削除の問題リスト処理では、mallocを使うが、メモリリークをさせないためには、使用後のリストの廃棄は重要である。リストの全要素を捨てる処理であれば、以下のようになるであろう。順序に注意}}一方、前説明の和集合のプログラムを以下のように作った場合、list_freeの処理は問題となる。(b)の部分は先のlist_free(b)で解放済み}UML構造図2015年7月7日UMLの構造図の書き方の説明。詳しくは、参考ページのUML入門などが、分かりやすい。枠の中に、上段:クラス名、中段:属性(要素)、下段:メソッド(関数)を記載する。可視性に応じて、"+-#"などを記載する。関連クラスが他のクラスと関係がある場合には、その関係の意味に応じて、直線や矢印で結ぶ。(a)関連:単純に関係がある場合、(b)集約:部品として持つが弱い結びつき。関係先が消滅しても別に存在可能。(c)コンポジション:部品として持つが強い結びつき。自動車は、エンジン(Engine)を部品として持つ。エンジンは車体と一緒に廃棄なら、コンポジションで実装する。自動車は、同じく車輪(Wheel)を4つ持つが、自動車を廃棄してもタイヤは別に使うかもしれないので、集約で実装する。集約で実装する場合は、C++などであれば、ポインタで部品を持ち、部品の廃棄(delete)は、別に行うことになる。クラスの設計を行う場合には、部品として持つのか、継承として機能を持つのか悩む場合がある。この場合には、"is-a"の関係、"has-a"の関係で考えると、部品なのか継承なのか判断しやすい。Engine"と表現すると、おかしいことが判る。このことから、CarはVehicleからの派生であり、Carの属性としてEngineを部品として持つ設計となる。オブジェクト図クラス図だけで表現すると、複雑なクラス関係では、イメージが分かりづらい場合がでてくる。この場合、具体的な値を図に書き込んだオブジェクトで表現すると、説明がしやすい場合がある。このように具体的な値で記述するクラス図は、オブジェクト図と言う。書き方としては、クラス名の下に下線を引き、中段の属性の所には具体的な値を書き込んで示す。miniOrange。