单向链表
链表的定义
链表是一中物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑
顺序是通过链表中的指针链接次序实现的。
链表由一系列结点组成,结点可以在运行时动态生成。
每个结点包括两部分:
一个是存储数据元素的数据域,
另一个是存储下一个结点地址的指针域。
创建单向链表
#include <stdio.h>
#include <stdlib.h>
//结构体 包含数据域与指针域
struct dat
{
int a;
struct dat *Next;
};
int main()
{
int a,b;
struct dat *tmp,*pre,*head;
tmp=NULL;
pre=NULL;
head=NULL;
scanf("%d",&a);
//将a个单独的结构体链接起来,构成单向链表
for(int i=0;i<a;i++)
{
scanf("%d",&b);
//为tmp分配内存空间。(为struct dat类型大小的类型空间)
tmp=(struct bat*)malloc(sizeof(struct dat));
tmp->a=b;
tmp->Next=NULL;
if(i==0)
{
head=tmp;
}
else
{
pre->Next=tmp;
}
pre=tmp;
}
pre=head;
//输出链表
while(pre!=NULL)
{
printf("%d",pre->a);
pre=pre->Next;
}
}
[参考] (https://www.bilibili.com/video/BV1HW411K7aH/?spm_id_from=333.999.0.0)