• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 リスト構造)

C言語で分岐があるリスト構造を実現する方法

このQ&Aのポイント
  • C言語で分岐があるリスト構造を実現するためには、どのような構造体を使えば良いでしょうか?装置A, 装置B, 装置Cのつながりと装置A, 装置B, 装置Eのつながりの両方に対応するための構造体の作成方法を教えてください。
  • C言語で分岐があるリスト構造を実現するためには、どのような構造体を使用する必要がありますか?例えば、装置A, 装置B, 装置Cのつながりと装置A, 装置B, 装置Eのつながりの両方に対応するための構造体の作成方法を教えてください。
  • 分岐があるリスト構造をC言語で実現するためには、どのような構造体を使うべきですか?装置A, 装置B, 装置Cのつながりと装置A, 装置B, 装置Eのつながりの両方を扱うための構造体の作り方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

device_t *next; だと1つしか持てないわけだから複数持てるように device_t **next; で複数持てるようにすればいいです。 仮に装置Bのdevice_tだとして next = malloc(sizeof(device_t *) * 3); next[0] = 装置C; next[1] = 装置E; next[2] = NULL; や next_num = 2; // int next = malloc(sizeof(device_t *) * next_num); next[0] = 装置C; next[1] = 装置E; とか。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

分岐の分だけポインタを持てばいいだけです。 具体例は既に出た通り。 余談になりますが 例示された様な、枝分かれする(合流しない)構造は「木」(tree)と呼びます。 木を使ったプログラムも参考にしましょう。

回答No.2

struct device { int no; char name[NAME_SIZE]; struct device *right; //右の device 構造体へのポインタ struct device *bottom; //下の device 構造体へのポインタ };

関連するQ&A