在Typedef结构中定义结构
Defining struct within typedef struct
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
。
这是一个数据结构,您通常需要使用递归算法来处理。所以是的,我想这有点像"数据递归"。
请注意,"叶子"是一个非常糟糕的名字。按照普通末端,叶子没有孩子,"节点"或类似的东西是正常名称。
递归的含义是:
" ...允许函数自我调用..."
您所拥有的基本上只是一个引用(指针)到另一个结构。
假设您正在使用二进制树,则递归的示例将是有序搜索。其中 inorder 方法将自己称为左孩子和右子。
相关文章:
- 我的超类中的模板问题与结构定义
- 为私有结构定义双参数运算符重载
- 可视化C++中的结构定义错误
- 如何在结构定义中组合__attribute__((dllexport))和[[nodiscard]]?
- COM 互操作结构定义与内存布局不匹配
- C 在标题文件中创建具有结构定义的结构的队列
- 如何将结构定义为结构的成员
- 在这个节点定义中,为什么我们在结构定义之后使用"Node"?
- 不同模块中的ambigus结构定义
- 有条件的C/C 结构定义
- C++ 初始化结构定义中的向量
- 字符串声明中的结构定义中的字符串声明
- 使用结构定义函数
- 为具有许多数据成员的结构定义 == 和<
- enableif结构定义和默认模板参数
- C 使用模板为结构定义别名
- C/C++ 中的套接字编程 - 接收由 typedef 结构定义的消息
- 为C++结构定义显式析构函数如何影响调用约定
- 当结构定义在头文件中时,如何在main()中创建结构数组
- C结构定义标准