在typedef结构中定义struct

时间:2012-11-01 16:11:36

标签: c++ struct

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

例如,上面的一个定义了结构leaf,并使该类型的2个成员:lchild,rchild。这就像递归一样吗?

3 个答案:

答案 0 :(得分:1)

你的假设是错误的。 leaf有2个leaf*类型的成员,而不是leaf。所以它不是(数据)递归。

以下

struct leaf
{
    leaf x;
};

在C ++中是非法的。请注意,在C ++中,当您声明该类型的变量成员时,您不需要struct leaf,也不需要typedef

答案 1 :(得分:0)

这是一种您经常希望使用递归算法处理的数据结构。所以是的,我猜它有点像'数据递归'。

请注意,'leaf'是一个非常糟糕的名字。通过正常的终结,叶子没有孩子,“节点”或类似的东西将是正常名称。

答案 2 :(得分:0)

recursion的含义是:

  

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

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

假设您正在使用二叉树,则递归的示例将是inorder搜索。 inorder 方法将自己调用给左子项和右子项。