链表(一)

 

 

#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;
}

 

posted @ 2017-03-22 22:58  夜鸥同学  阅读(174)  评论(0)    收藏  举报