在 C 中使用 struct 和 for 循环创建树
Create a tree using struct and for loops in C
我有一个问题。我正在尝试创建一棵树。完整的代码很大,所以我很难进入这里。因此,下面给出了它的摘要。
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_02
和 fn_03
编辑的值 return 应该创建一棵树。
这是我遇到的问题:
fn_01
中的循环应该继续工作。
- 但是当
fn_02
和 fn_03
被 return 编辑时,循环(和函数)停止。
- 但是 return 对于创建树是必不可少的。而且 for 循环必须继续工作。
请问您能推荐另一种解决方案吗?
如果不查看更多代码就很难回答,但您可能可以通过推迟 return 声明来解决这个问题:
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
}
}
我有一个问题。我正在尝试创建一棵树。完整的代码很大,所以我很难进入这里。因此,下面给出了它的摘要。
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_02
和 fn_03
编辑的值 return 应该创建一棵树。
这是我遇到的问题:
fn_01
中的循环应该继续工作。- 但是当
fn_02
和fn_03
被 return 编辑时,循环(和函数)停止。 - 但是 return 对于创建树是必不可少的。而且 for 循环必须继续工作。
请问您能推荐另一种解决方案吗?
如果不查看更多代码就很难回答,但您可能可以通过推迟 return 声明来解决这个问题:
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
}
}