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++ 中是非法的。请注意,在 C++ 中,struct leaf
当您声明该类型变量的成员时不需要,也不需要typedef
.
这是您经常希望使用递归算法处理的数据结构。所以是的,我想这有点像“数据递归”。
请注意,“叶子”是一个非常糟糕的名字。按照正常的术语,叶子没有孩子,“节点”或类似的东西将是正常的名称。