使用for循环创建链接列表

时间:2014-02-09 16:53:44

标签: c for-loop struct linked-list singly-linked-list

这是我的结构

struct ListItem{

    int data;
    struct ListItem *next;

};

假设链表的第一个节点有data = 0,我想编写一个for循环,创建一个大小为5的链表,但我不确定如何工作

我尝试了以下

int main(int argc, char* argv[]){

    struct ListItem a;
    a.data = 0;


    for (int i = 1; i < 5; i++){
        struct ListItem *pointer = &a;
        struct ListItem nextnode;
        nextnode.data = i;
        a.next = &nextnode;
        pointer = pointer->next;

    }
}

但结果是 a.data = 0 和a.next-&gt; data = 4

2 个答案:

答案 0 :(得分:0)

不要修改。以一个临时节点开始。使它成为新节点的下一个点,然后将temp节点设置为新节点。也在堆中动态分配。否则,每次循环运行后内存将被释放

答案 1 :(得分:0)

struct ListItem a[5] = { {0, NULL}};
struct ListItem *pointer = &a[0];

for (int i = 0; i < 5; i++){
    a[i].data = i;
    if(i != 5 -1)
        a[i].next = &a[i+1];
}