c语言怎么使用链表?

2025-10-22 14:11:37

1、新建一个Student结构体,两个成员变量:一个是num存放数据,一个是值next指针,指向下一个结构体。

c语言怎么使用链表?

2、定义头节点和三个子节点。

c语言怎么使用链表?

3、为每个节点分配内存空间。包括头节点。

c语言怎么使用链表?

4、给每个子节点赋值。头结点不需要。

c语言怎么使用链表?

5、依次链接起来。

c语言怎么使用链表?

6、定义指针p,指向链表头。

c语言怎么使用链表?

7、循环打印每个节点的num值。

c语言怎么使用链表?

8、释放内存。malloc了就要free。

c语言怎么使用链表?

9、完整代码:

#include <stdio.h>

#include <stdlib.h>

//定义Student结构体

struct Student

{

int num;

struct Student *next;

};

int main()

{

//定义头结点

struct Student *head;

//定义p1,p2,p3子节点

struct Student *p1, *p2, *p3;

//给头节点和子节点分配内存

//头结点不能用head=NULL,vs2017下报错。

head= (struct Student*)malloc(sizeof(struct Student));

p1 = (struct Student*)malloc(sizeof(struct Student));

p2 = (struct Student*)malloc(sizeof(struct Student));

p3 = (struct Student*)malloc(sizeof(struct Student));

//每个子节点赋值,初始化。

p1->num = 100;

p2->num = 200;

p3->num = 300;

//链接起来

head->next = p1;

p1->next = p2;

p2->next = p3;

p3->next = NULL;

//定义指针p指向链表头

struct Student *p = head;

//循环输出

while(p->next!=NULL)

{

//移到下一个节点,head->没有内容,空的。

p = p->next;

//现在是p1节点,打印p1中num的内容。。。。。p2 ....p3以此循环

printf("%d\n",p->num);

}

//释放节点内存

free(head);

free(p1);

free(p2);

free(p3);

return 0;

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢