typedef struct leaf{
int value;
struct leaf* lchild;
struct leaf* rchild;
} LEAF;
例如,上面的一个定义了结构leaf
,并使该类型的2个成员:lchild,rchild。这就像递归一样吗?
答案 0 :(得分:1)
你的假设是错误的。 leaf
有2个leaf*
类型的成员,而不是leaf
。所以它不是(数据)递归。
以下
struct leaf
{
leaf x;
};
在C ++中是非法的。请注意,在C ++中,当您声明该类型的变量成员时,您不需要struct leaf
,也不需要typedef
。
答案 1 :(得分:0)
这是一种您经常希望使用递归算法处理的数据结构。所以是的,我猜它有点像'数据递归'。
请注意,'leaf'是一个非常糟糕的名字。通过正常的终结,叶子没有孩子,“节点”或类似的东西将是正常名称。
答案 2 :(得分:0)