typedef struct leaf{
int value;
struct leaf* lchild;
struct leaf* rchild;
} LEAF;
たとえば、上記のものは構造leafを定義し、そのタイプの2つのメンバー(lchild、rchild)を作成します。それで、これは再帰のようなものですか?
あなたの仮定は間違っています。タイプではなくleaf、タイプの2つのメンバーがあります。したがって、(データ)再帰ではありません。leaf*leaf
そして以下
struct leaf
{
leaf x;
};
C++では違法になります。struct leafC ++では、その型の変数のメンバーを宣言するときに必要ではなく、 。も必要ないことに注意してくださいtypedef。
これは、再帰的アルゴリズムで処理することが多いデータ構造です。そうです、それは「データ再帰」のようなものだと思います。
'leaf'は本当に悪い名前であることに注意してください。通常の用語では、葉には子がなく、「ノード」などが通常の名前になります。