【问题标题】:Iterating over a nested Linked List in another LL in C在 C 中的另一个 LL 中迭代嵌套的链表
【发布时间】:2021-04-13 08:13:13
【问题描述】:

我知道有人问过与此类似的问题,但我似乎无法正确地将其他案例应用于我的案例。

我最近刚开始使用 C,这是学校的作业,因此深入指导比代码更受欢迎。

我有一个链接列表,其中包含有关具有以下结构的文件的信息:

struct node {
    char * word;
    int count;
    float freq;
    struct node *next;
}

然后我有另一个链接列表,它具有前一个列表作为其结构中包含的数据的一部分,如下所示:

struct node2 {
    int file_fd;
    int word_count;
    struct node *wfd_fd;
    struct node2 *next;
}

我希望在从嵌套的 LL 中提取信息时,能够在我指向的整个 wfd_fd 结构上迭代一个函数。例如,尝试将特定文件中每个单词的频率相加。任何帮助将不胜感激。

【问题讨论】:

    标签: c linked-list nested-lists


    【解决方案1】:

    基本上迭代嵌套列表只是使用嵌套循环:一个外部循环用于外部列表,然后一个循环嵌套在内部用于嵌套列表。

    在你的情况下,它会是这样的:

    // Outer loop for outer list
    for (struct node2 *n2 = node2_head; n2 != NULL; n2 = n2->next)
    {
        // Inner loop for inner list
        for (struct node *n = n2->wfd_fd; n != NULL; n = n->next)
        {
            // Do something with n->word...
        }
    }
    

    【讨论】:

    • 是 *n2 和 *n 只是我设置到我已经创建的结构的任意指针,还是来自所述结构?
    • @sbling 我使用了您的示例中显示的类型。变量的名称可以是任何适合您的名称,但我建议使用描述性的名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多