链表的操作(自己实现的-c语言版)

描述:pass

#include<stdio.h>
#include <stdlib.h> 
typedef struct _node{
        int value;
        struct _node *next;
    } node;

node* creat();
node* print(node* L1);
int main(){
    node *L1;
    L1 = creat();
    print(L1);
}
node* creat(){
    int number;
    node*end=NULL,*head;
    scanf("%d",&number);
    if(number!=-1){
    end=(node*)malloc(sizeof(node));
    end->value=number;
    end->next=NULL;
    }
    head=end;
    //创造了第一个链表节点;
    while(number!=-1){
        scanf("%d",&number);
        if(number!=-1){
            node *p;
            p=(node*)malloc(sizeof(node));
            p->value=number;
            p->next=end;
            //生成了一个临时节点;
            head=p;
            end=p;
        //将两个链表节点链接起来了;
    }
    }
    return head;
}
node* print(node* L1){
    node*last=L1;
    if(last==NULL){
        printf("NULL");
        return 0;
    }
    while(last->next!=NULL){
        printf("%d ",last->value);
                last=last->next;
    }
    printf("%d ",last->value);
}

猜你喜欢

转载自www.cnblogs.com/home979/p/9225685.html