質問: c言語 リスト構造 --(装置a)--(装置b)---(装置c)--- | ---(装置e)--- 上の例のように途中で分岐があるリスト構造を あらわすために、c言語でどのような構造体をもつべきでしょうか? (装置a),(装置b),(装置c)のつながりだけをリスト構造で持つ場合は、 struct device { int no; char name[name_size]; device_t *next; //次の device 構造体へのポインタ }; のような構造体を使いリスト構造にできましたが、 (装置a),(装置b),(装置c)のつながりと (装置a),(装置b),(装置e)のつながりの両方に対応する(分岐のある構造にも対応する) ためには、どのようなつくりにすればよいでしょうか? できれば、サンプルなどでおしえていただけますとありがたいです。 よろしくお願い致します。
回答: 分岐の分だけポインタを持てばいいだけです。 具体例は既に出た通り。 余談になりますが 例示された様な、枝分かれする(合流しない)構造は「木」(tree)と呼びます。 木を使ったプログラムも参考にしましょう。