c - 在 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_02
的值fn_03
应该创建一棵树。
这是我遇到的问题:
- 循环
fn_01
应该继续工作。 - 但是当
fn_02
和fn_03
被返回时,循环(和函数)停止。 - 但是回报对于创建树是必不可少的。并且 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
}
}
推荐阅读
- reactjs - CSSStyleDeclaration 在 react 中使用 useRef 时没有给出任何值
- ios - 在 iOS 15 的呼叫目录扩展中经常出现此问题: Domain=com.apple.CallKit.error.calldirectorymanager Code=2 "(null)"
- reactjs - 如何在 NextJS 中更新标签的 src 而无需重新渲染整个组件
- html - Bootstrap Collapse 不崩溃
- google-chrome - VS Code 默认浏览器
- excel - 无法将所有 csv(管道分隔符)转换为 xlsx
- text - Vue3 v-for 从 api 过滤数据渲染数据
- json - 在共享首选项中解码存储的 json 结果字符串
- python - Tensorflow 2 while 循环中的自定义增强层出错
- c# - 连接 WCF Cryptography.CryptographicException:指定的初始化向量 (IV) 与此算法的块大小不匹配