-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++ 中是非法的。请注意,在 C++ 中,struct leaf当您声明该类型变量的成员时不需要,也不需要typedef.

于 2012-11-01T16:21:10.317 回答
0

递归的含义是:

“...允许函数调用自身...”

您所拥有的基本上只是对另一个结构的引用(指针)。

假设您正在使用二叉树,递归的一个例子就是中搜索。inorder方法将自身调用到左孩子和右孩子。

于 2012-11-01T16:38:56.390 回答
0

这是您经常希望使用递归算法处理的数据结构。所以是的,我想这有点像“数据递归”。

请注意,“叶子”是一个非常糟糕的名字。按照正常的术语,叶子没有孩子,“节点”或类似的东西将是正常的名称。

于 2012-11-01T16:19:09.957 回答