c语言怎么使用链表
的有关信息介绍如下:vs2017下使用链表。C语言。
新建一个Student结构体,两个成员变量:一个是num存放数据,一个是值next指针,指向下一个结构体。
定义头节点和三个子节点。
为每个节点分配内存空间。包括头节点。
给每个子节点赋值。头结点不需要。
依次链接起来。
定义指针p,指向链表头。
循环打印每个节点的num值。
释放内存。malloc了就要free。
完整代码:
#include
#include
//定义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;
}