【发布时间】:2015-01-05 15:29:10
【问题描述】:
递归对我来说太令人困惑了...... 以下是用于创建类二叉树的结构:
struct parent {
char *name;
Child *children;
};
typedef struct parent Parent;
struct child {
struct Parent *Pptr;
struct child *next;
};
typedef struct child Child;
我想遍历整个树并在每个子/父(基本上每个节点)上调用一个名为birthdaygift() 的函数。
以下是我迄今为止尝试过的方法,但我认为它不起作用。
tree(Parent *parent) {
Child* child = parent->children;
birthdaygift(parent);
if (child == NULL) {
return;
}
while (child->next != NULL) {
Parent * recurseparent = child->Pptr;
tree(recurseparent);
}
birthdaygift(parent);
}
如果有人能给我一些指点,那真的很有帮助吗?
【问题讨论】:
-
你最好澄清你的问题。这是对您尝试实现的结构还是结构本身的误解。 Binary 将树结构定义为由节点组成的树,每个节点是最多有 2 个(左和右)子节点的子树。这与链接到下一个和前一个节点的节点列表(双向链表)不同,这就是你所拥有的。
标签: c recursion binary-tree