建立单向链表
- 链表本质上是用指针链接起来的多个结构体,所以建立链表的第一步就是定义一个结构体变量
如struct libi {int data; struct libi *next; }
- 第二步定义头节点与结构体指针
struct libi *head,*p,*p1;
- 第三步为其申请空间,使用
malloc
函数(包含在stdlib.h
函数库中)head=p=(struct libi*)malloc(sizeof(struct libi));p1=(struct libi*)malloc(sizeof(struct libi));
- 第四步输入数据并把结构体链接起来,需要使用循环语句读入数据,并继续申请空间
代码如下while(1) { scanf("%d",&p1->data); if(p1->data==-1) break; head->next=p1; p=p1; p1=(struct ListNode*)malloc(sizeof(struct ListNode)); }
这里假设遇到-1结束 - 输入结束后将链表的尾节点的指针域置空并释放多申请的P1的空间
p->next=NULL; free(p1);
- 此时一个单向链表便建立完成,head便是其头节点