#include <stdio.h>
#include <stdlib.h>
struct LNode
{
int data;
struct LNode * next;
};
struct LNode * create(int n)
{
int i;
struct LNode *head,*p1,*p2;
int a;
head=NULL;
for(i=1;i<=n;i++)
{
p1=(struct LNode *)malloc(sizeof(struct LNode)); //通过p1来申请空间
printf("请输入链表中的第%d个数:\n",i);
scanf("%d",&a);
p1->data=a;
if(head==NULL)
{
head=p1; //此处已有链表头
p2=p1; //通过对p2的前后联系来建立链表
}
else
{
p2->next=p1;
p2=p1;
}
p2->next=NULL;
} //循环从第二遍开始就形成了链
return head;
};
int main()
{
int n;
struct LNode *p;
printf("请输入链表长度:\n");
scanf("%d",&n);
p=create(n);
printf("链表的数据:\n");
while(p)
{
printf("%2d",p->data); //打印时只需将数据块输出
p=p->next; //再把p指向下一个单元
}
printf("\n");
return 0;
}