头插法建立链表

来源:互联网 发布:无人机用什么语言编程 编辑:程序博客网 时间:2024/05/21 05:08

#include <stdio.h>
#include <malloc.h>

#define ElemType int

typedef struct Node
{
    ElemType       Data;
    struct  Node * Next;
}LNode,*LinkList;

LinkList CreatLNode_Head_Insert() // 头插法建立链表
{
    LinkList Head;
    Head=(LinkList)malloc(sizeof(LNode));
    LNode  * S;
    ElemType Elem;
   
    Head->Next=NULL;
    printf("请输入一个数,以0终止输入\n");
    scanf("%d",&Elem);
   
    while(Elem!=0)  
    {
        S=(LinkList)malloc(sizeof(LNode));
        S->Data=Elem;
        S->Next=Head->Next;
        Head->Next=S;
        scanf("%d",&Elem);
    }
    return Head;
}

void Print (LinkList Head)
{
    LinkList   p;
    p=Head;
   
    while(p->Next!=NULL)
    {
        p=p->Next;
        printf("%d   ",p->Data);
    }
}

int  Destroy_LinkList(LinkList Head)
{
    LinkList p,q;
    p=Head;
   
    q=p->Next;
    while(q->Next!=NULL)
    {
        free(p);
        p=q;
        q=q->Next;
    }
    free(p);
    free(q);
    return 0;
}

int main(void)
{
    LinkList  head;
   
    head=CreatLNode_Head_Insert();
    Print(head);
    Destroy_LinkList(head);
    return 0;
}

0 0
原创粉丝点击