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 leaf
C ++では、その型の変数のメンバーを宣言するときに必要ではなく、 。も必要ないことに注意してくださいtypedef
。
これは、再帰的アルゴリズムで処理することが多いデータ構造です。そうです、それは「データ再帰」のようなものだと思います。
'leaf'は本当に悪い名前であることに注意してください。通常の用語では、葉には子がなく、「ノード」などが通常の名前になります。