#include"stdio.h"
/*
链表是线性表的链式存储
链表由一个一个结点组成
每一个节点分为指针域和数据域
指针域有一个的叫单链表 ,有两个叫双链表,三个及三个以上的叫多链表
结点的单词叫“node”
struct node{
int data;//数据域存储数据;
struct node *next; //指针域,指向下一个节点的地址
}
分配空间用malloc
释放空间用free
计算字节大小sizeof
创建链表三步骤
1:先给结点申请空间
2:给该结点赋值(数据域赋值)
3:将新结点连接到链表上
*/
struct node{
int data;
struct node *next;//因为next是一个要指向下一个数据域的指针所以类型为 struct node
};
void main()
{
int j;
struct node *head;//头结点 决定后续输出时的首个地址
struct node *q;//用q来不断地创建新的空间
struct node *s;//负责连接
struct node *shuchu;//负责输出
for(j=0;j<5;j++)
{
q=(struct node *)malloc(sizeof(struct node));
printf("第%d个:",j+1);
scanf("%d",&q->data);
q->next=NULL;
if(j==0)
{
head=q;//输出时备用 可以看作时首地址
s=q;
}
else
{
s->next=q;
s=q;
}
}
shuchu=head;
for(j=0;j<5;j++)
{
printf("%d",shuchu->data);
shuchu=shuchu->next;
}
}