如何在c中的链表中创建链表

时间:2013-02-28 19:29:58

标签: c linked-list structure

我想创建一个主列表,每个主列表元素都有另一个列表。

这就是我做的事情

    typedef struct smallList
    {   char data;
        struct smallList *next;  

     } small;

    typedef struct bigList
    {
        int count;
        char data;
        struct bigList *next;
        struct smallList *head;
     } big;

但是如何从大列表中访问小列表数据并将内容添加到小列表中。 任何帮助非常感谢。谢谢....

2 个答案:

答案 0 :(得分:2)

因此,如果我们假设已经填充了这个结构,我们可以这样做:

struct smallList *smallElem = NULL;
struct bigList *bigElem = NULL;

for (bigElem = your_big_list(); bigElem != NULL; bigElem = bigElem->next) {
    // Do something with bigElem.

    for (smallElem = bigElem->head; smallElem != NULL; smallElem = smallElem->next) {
        // Do something with the smallElem.
        // Note that we can still reference bigElem here as well.
    }
}

答案 1 :(得分:1)

如果p指向bigList:

  • bigList -> head是bigList指向的小列表。
  • (bigList -> head).data是smallList包含的字符。
  • (bigList -> next -> head)是bigList中的第二个smallList。
  • (bigList > head -> next)是bigList的第一个smallList中的第二个元素。

获取指向要修改的结构的指针后,其他所有内容都是相同的。