这是我自己做的一个简单的链表,里面只有一个变量a,其中重要的部分我都做了注释,希望大家能有所收获。其中还有对链表的插入数据,修改删除数据,我们下个博客见!
#include<stdio.h>
#include<stdlib.h>
struct link
{
int a;//变量定义
struct link *next;//存放下一个数据的地址
};
struct link * Initlink()
{
//定义头指针
struct link * header = (struct link*)malloc(sizeof(struct link));
header->a = 0;//初始化链表
header->next = NULL;//初始化链表
//定义尾指针
struct link *tail = header;
while (1)
{
int value = 0;//定义一个变量便于输入数据
printf("请输入数据,按0进行结束\n");
scanf("%d", &value);//在这里进行输入数据
if (value == 0)break;
//在这里创建一个节点
struct link*newcode = (struct link*)malloc(sizeof(struct link));
newcode->a = value;//结点进行赋值
newcode->next = NULL;//结点进行赋值
//将节点进行连接
tail->next = newcode;
//更新尾部数据
tail = newcode;
}
return header;//返回头指针,以便查看
}
//打印链表
void print(struct link *header)
{
struct link *pc = header->next;//头文件不打印,将第一个节点以后的进行打印
while (pc!=NULL)//判断结束
{
printf("%d ", pc->a);
pc = pc->next;//根据地址查找下一个元素
}
}
int main()
{
//初始化链表
struct link *header = Initlink();
//打印链表
print(header);
return 0;
}