#include <stdio.h>
#include <malloc.h> //用于动态分配内存
#define NULL 0
#define LEN sizeof(List)
typedef struct node
{
long number; //数据域
struct NODE * next; //指针
}List;
int n = 0; //定义一个全局变量, 用来存放链表的个数
List * create(); //函数声明
int main()
{
create(); //创建链表
return 0;
}
//创建链表函数
List * create()
{
List * head; //头指针, 指向第一个链表
List * p1, *p2;
p1 = (List *)malloc(LEN);
p2 = (List *)malloc(LEN); //开辟内存空间
head = NULL; //当还没有链表时, head指向null
printf("请输入要插入链表的数据(当输入0时结束):");
scanf("%d", &p1->number);
while(p1->number != 0)
{
//当number不为0时, 链表就增加一个
++n; //链表个数加1
if(n == 1) //当是第一个链表时
head = p1;
else
p2->next = p1;
p2 = p1; //p1, p2指向同一个内存
p1 = (List *)malloc(LEN); //分配内存
printf("请输入要插入链表的数据(当输入0时结束):");
scanf("%d", &p1->number);
}
return head;
}