#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct chain)
struct chain
{
int data;
struct chain * next;
};
typedef struct chain CHAIN;
typedef struct chain* pCHAIN;
pCHAIN creat(int* number); //创建链表
int main()
{
int number=0,i;
int* pNumber=&number;
pCHAIN head,p;
head=creat(pNumber);
p=head;
if(head==NULL) printf("链表创建失败!");
for(i=0;i<number;i++)
{
printf("%d\n",p->data);
p=p->next;
}
return 0;
}
pCHAIN creat(int* number)
{
pCHAIN head=NULL,tail=NULL,cnew=NULL;
int data;
scanf("%d",&data);
if(data<=0) return head;
(*number)++;
cnew=(pCHAIN)malloc(LEN); //创建新结点
cnew->data=data;
cnew->next=NULL;
head=cnew; //头指针指向新结点(结点插入链表)
tail=cnew; //尾指针指向新结点
scanf("%d",&data);
while(data>0)
{
cnew=(pCHAIN)malloc(LEN); //创建新结点
(*number)++;
cnew->data=data;
cnew->next=NULL;
tail->next=cnew; //新结点插入链表
tail=cnew; //尾指针指向新结点
scanf("%d",&data);
}
return head;
}