
--(装置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)のつながりの両方に対応する(分岐のある構造にも対応する)
ためには、どのようなつくりにすればよいでしょうか?
できれば、サンプルなどでおしえていただけますとありがたいです。
よろしくお願い致します。
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;
とか。
No.3
- 回答日時:
分岐の分だけポインタを持てばいいだけです。
具体例は既に出た通り。
余談になりますが
例示された様な、枝分かれする(合流しない)構造は「木」(tree)と呼びます。
木を使ったプログラムも参考にしましょう。
No.2
- 回答日時:
struct device {
int no;
char name[NAME_SIZE];
struct device *right; //右の device 構造体へのポインタ
struct device *bottom; //下の device 構造体へのポインタ
};
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) 半導体製造装置に詳しい方に聞きたいです。 就活の中で、半導体製造装置業界を見っています。 その中、エ 1 2022/04/17 00:05
- その他(コンピューター・テクノロジー) 半導体製造装置は韓国や台湾の設計に 合う 半導体製造装置を作らなければならないけど。 複雑になればな 5 2023/08/10 16:30
- 政治 安倍内閣ができてから「半導体製造装置」産業が凋落の一途ですが、どういうことですか? 4 2022/07/01 02:45
- ディスカウントストア・ドラッグストア 鼻出しマスクになってしまう顔の構造の人っているんですか? うちの親が、気が付くとマスクから鼻が出てる 1 2022/10/19 16:19
- その他(コンピューター・テクノロジー) 以下の用語がわかんないので教えてください!!! ①プロトコルの変換をする装置。トランスポート層からア 1 2023/07/05 09:10
- 経済 半導体製造装置や半導体部品を海外輸出禁止になって。 韓国サムスン 中国 大ピンチ。 …となると、勿論 3 2023/02/05 08:07
- 日本語 日本語のアクセント 1 2022/05/12 13:26
- 日本語 以下文章で使用される「で」の品詞は何でしょうか? 可能であれば、「で」の用法が記載されているWEBサ 3 2022/10/15 09:46
- 経済 熊本に半導体工場が作られて。 雇用が促進するのは良いのだけど。 半導体製造装置と材料は ほぼ7割越え 6 2023/04/03 20:07
- 建設業・製造業 最新の半導体製造装置メーカーランキングが欲しいのですが、よいきじがみつからず。 どなたか教えてくださ 2 2023/03/19 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
参照型で受け取った引数をポイ...
-
fopne で失敗する原因
-
PASCALとFARの意味
-
LPSTR型の初期化について
-
CWnd::EnableWindow()の扱い方
-
ポインタについて
-
プーさんのマウスポインタを教...
-
連結リスト 要素の入れ替え
-
ハンドルはポインタか
-
C++で関数ポインタから関数名を...
-
自作DLLの引数について、ポイン...
-
NULLポインタが0でない処理系と...
-
TCHAR文字列内の検索について
おすすめ情報