码迷,mamicode.com
首页 > 其他好文 > 详细

insert.c

时间:2018-07-24 22:50:45      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:input   typedef   fail   class   next   memory   insert   eof   [1]   

#include <stdio.h>
#include <stdlib.h>
#define  Max  10


struct  List
{
    int     Number;
    int     Total;
    struct  List  *Next;
};
typedef  struct  List  Node;
typedef  Node *Link;

int Data[2][Max] = { 1, 3, 5, 7, 2, 4, 6, 8, 9, 0,
         13, 35, 10, 67, 25, 65, 38, 70, 30, 20 };

Link Insert_List(Link Head, Link New, int Key)
{
    Link  Pointer;
    Pointer = Head;

    while(1)
    {
        if (Pointer == NULL)
        {
            New->Next = Head;
            Head = New;
            break;
        }
        if (Pointer->Number == Key)
        {
            New->Next = Pointer->Next;
            Pointer->Next = New;
            break;
        }
            Pointer = Pointer->Next;
    }

    return Head;
}

void Print_List(Link Head)
{
    Link   Pointer;
    Pointer = Head;
    while(Pointer != NULL)
    {
        printf("[%d,%d]",Pointer->Number,Pointer->Total);
        Pointer = Pointer->Next;
    }
    printf("\n");
}

void Free_List(Link Head)
{
    Link Pointer;

    while(Head != NULL)
    {
        Pointer = Head;
        Head = Head->Next;
        free(Pointer);
    }
}

Link Create_List(Link Head)
{
    Link   New;
    Link   Pointer;
    int    i;

    Head = (Link)malloc(sizeof(Node));

    if (Head == NULL)
    printf("Memory allocate Failure!!\n");
    else
    {
        Head->Number = Data[0][0];
        Head->Total  = Data[1][0];
        Head->Next   = NULL;

        Pointer = Head;

        for(i = 1; i < Max; i++)
        {
            New = (Link)malloc(sizeof(Node));

            New->Number = Data[0][i];
            New->Total  = Data[1][i];
            New->Next   = NULL;

            Pointer->Next = New;
            Pointer = New;
        }
    }
    return Head;
}

void main()
{
    Link   Head;
    Link   New;
    int    Key;

    Head = Create_List(Head);

    if (Head != NULL)
    {
        Print_List(Head);
        while(1)
        {
            printf("Input 0 to EXIT!!\n");
                New = (Link)malloc(sizeof(Node));
                printf("Please input the data number : ");
                scanf("%d", &New->Number);
            if(New->Number == 0)
                break;
                printf("Please input the data total : ");
                scanf("%d", &New->Total);
            printf("Please input the data number for insert : ");
            scanf("%d",&Key);

            Head = Insert_List(Head,New,Key);

            Print_List(Head);
         }
         Free_List(Head);
    }
}

  

insert.c

标签:input   typedef   fail   class   next   memory   insert   eof   [1]   

原文地址:https://www.cnblogs.com/lifelessfaultless/p/9363087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!