-1
typedef struct leaf{
  int value;
  struct leaf* lchild;
  struct leaf* rchild;
} LEAF;

たとえば、上記のものは構造leafを定義し、そのタイプの2つのメンバー(lchild、rchild)を作成します。それで、これは再帰のようなものですか?

4

3 に答える 3

1

あなたの仮定は間違っています。タイプではなくleaf、タイプの2つのメンバーがあります。したがって、(データ)再帰ではありません。leaf*leaf

そして以下

struct leaf
{
    leaf x;
};

C++では違法になります。struct leafC ++では、その型の変数のメンバーを宣言するときに必要ではなく、 。も必要ないことに注意してくださいtypedef

于 2012-11-01T16:21:10.317 に答える
0

これは、再帰的アルゴリズムで処理することが多いデータ構造です。そうです、それは「データ再帰」のようなものだと思います。

'leaf'は本当に悪い名前であることに注意してください。通常の用語では、葉には子がなく、「ノード」などが通常の名前になります。

于 2012-11-01T16:19:09.957 に答える
0

再帰の意味は次のとおりです。

「...関数がそれ自体を呼び出すことを許可する...」

あなたが持っているのは、基本的に別の構造体への参照(ポインタ)です。

二分木で作業していると仮定すると、再帰の例は順序どおりの検索になります。inorderメソッドが自分自身を左の子と右の子に呼び出す場合。

于 2012-11-01T16:38:56.390 に答える