• ベストアンサー

この構造体の意味が分かりません。

struct OBJECT{ ____struct OBJECT *yn[2]; ____char *item; }; この構造体はどんな構造体なのか教えてください。 特に、struct OBJECT *yn[2];の部分を教えてもらえるとありがたいです。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★『struct OBJECT *yn[2]』は『struct OBJECT』型へのポインタです。 ・構造体『struct OBJECT』の中に自分自身へのポインタ変数を持つものを  『自己参照構造体』と呼びます。 ・回答者 No.1、No.2 さんと同じく『双方向リスト』や『2進木』の基本構造ですね。 ・それで多分『yn[2]』というメンバが『2進木』の『Yes』、『No』の可能性がありますね。  つまり、ゲームなどでコマンドを選択して分岐・進行していくのに便利そうです。 ・もしかしたら、何かのゲームのソースを覗いて『意味』が分からなくて質問でもしましたか? ・とにかく、『yn[2]』というメンバが『2進木』などの『ノード』を表しているのではないでしょうか。 ・以上。おわり。→情報不足のため、全ては推測でのアドバイスです。参考にして下さい。

その他の回答 (4)

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.5

サービスで図を作ってみよう。沢山のOBJECTがあって、 一つのOBJECTを■で表すと、以下のように1つのOBJECTは 二つのOBJECTのリンクが持てるわけです。 図1.2進木とかリストと言われる構造 itemitemitemitem ↑ ↑ ↑ ↑ ■→■→■→■・・・・ ↓ ↓ ↓ ↓ ■ ■ ■ ■ ・ ・ ・ ・ 図2.両方向にリンクを持つ。スタックや行列に使う (行列は数学で言う行列ではなくて、単なる並び)  ← ← ← ← ■→■→■→■→・・・・ ↓ ↓ ↓ ↓ itemitemitemitem

noname#26650
noname#26650
回答No.4

>struct OBJECT *yn[2]というのは何型と言えばいいのでしょうか。 書いてあるとおり、struct OBJECT *型です。 ある構造体のメンバーが、その構造体と同じ型を持つ場合、 その構造体を「自己参照構造体」といいます。 必須キーワード:自己参照構造体、リスト構造

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

そうですね。#1さんの仰るとおりでしょう。 リスト構造を表す基本的な形に見えます。 スタックとかなんでも表せる汎用的な構造 ですか・・・特定出来ませんね。

holmes1001
質問者

補足

OBJECTという構造体の中にchar型の*itemがあるのは分かるのですが、struct OBJECT *yn[2]というのは何型と言えばいいのでしょうか。 よろしくお願いします。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

これだけでは分かりません。 OBJECTを操作する関数のコードをみれば分かるでしょうが。 ただ推測すると、双方向リンクのリストではないでしょうか。 ynが前方と後方へのリンクでitemが実アイテムをポイントしてる。 そんな感じかと思いますけど。

関連するQ&A