首页 > 解决方案 > 在 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应该创建一棵树。

这是我遇到的问题:

你能建议另一种解决方案吗?

标签: cstructbinary-treereturn-valueabstract-syntax-tree

解决方案


如果没有看到更多代码,很难回答,但您可能可以通过推迟 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
    }
}

推荐阅读