在c语言中使用struct和for循环创建树



我有一个问题。我在尝试创造一棵树。完整的代码很大,所以我很难进入这里。因此,下面给出了一个总结。

struct sample *fn_02(void);
struct sample *fn_03(void);
// Main Function
int main(void) {
struct sample *tree;
tree = fn_01();
}
// First Function
struct sample *fn_01(void) {
for(;;) {
switch(..) {
case 1:
return fn_02();
case 2:
return fn_03();
}
}
}
// Second Function
struct sample *fn_02(void) {
struct sample *node;
return node;
}
// Third Function
struct sample *fn_03(void) {
struct sample *node;
return node;
}

我想创建一个树。因此,我创建了一个名为struct sample {};的结构,并为它创建了3个函数。

在第一个(fn_01())函数中有一个无限循环,fn_02fn_03返回的值应该创建一个树。

这是我的问题:

  • fn_01中的循环应该继续工作。
  • 但是当fn_02fn_03返回时,循环(和函数)停止。
  • 但是返回对于创建树是必不可少的。并且for循环必须继续工作。

您能提出另一种解决方案吗?

如果没有看到更多的代码,很难回答这个问题,但是您可能可以通过延迟返回语句来处理这个问题:

struct sample *fn_01(void) {
sample * s = NULL;
for(;;) {
switch(..) {
case 1:
s = fn_02();
break;
case 2:
s = fn_03();
break;
}
// Check s and/or do something with it. Return only when relevant
}
}

最新更新