zoukankan      html  css  js  c++  java
  • 数据结构。顺序表

    #include <stdio.h>
    #include <stdlib.h>

    #define LIST_INIT_SIZE 100
    #define LIST_INCREMENT 10
    typedef struct Point   //element type
    {
        int x;
        int y;
    }Point;
    typedef Point ElemType;
    typedef struct          //list type
    {
        ElemType *elem;     //data
        int length;         //current length
        int listsize;       //maximum size
    }Sqlist;
    int cpy(ElemType *des,ElemType data)
    {
        des->x=data.x;
        des->y=data.y;
        return 0;
    }
    int elem_cmp(ElemType data1,ElemType data2);
    int list_init(Sqlist *mylist);
    int list_insert(Sqlist *mylist,ElemType data);
    int list_find(Sqlist *mylist,ElemType data);
    int list_delete(Sqlist *mylist,ElemType data);
    int list_disp(Sqlist mylist);
    int main()
    {
        Sqlist mylist;
        list_init(&mylist);
        printf("%d,%d ",mylist.length,mylist.listsize);
        printf("Hello world! ");

        Point tempt;
        tempt.x=11;
        tempt.y=12;

        list_insert(&mylist,tempt);
        list_disp(mylist);
        printf("%d,%d ",mylist.length,mylist.listsize);
        getchar();

        tempt.x=21;
        tempt.y=22;
        list_insert(&mylist,tempt);
        list_disp(mylist);
        printf("%d,%d ",mylist.length,mylist.listsize);
        getchar();

        list_delete(&mylist,tempt);
        list_disp(mylist);
        printf("%d,%d ",mylist.length,mylist.listsize);
        getchar();

        return 0;
    }
    int elem_cmp(ElemType data1,ElemType data2)
    {
        if( (data1.x==data2.x) &&(data1.y==data2.y) )
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
    int list_init(Sqlist *mylist)
    {
        mylist->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
        if(mylist->elem!=NULL)
        {
            mylist->length=0;
            mylist->listsize=LIST_INIT_SIZE;

            printf("%d,%d ",mylist->length,mylist->listsize);
            return 0;
        }
        else
        {
            printf("allocate memory is failed! sorry ");
            return 1;
        }
    }
    int list_insert(Sqlist *mylist,ElemType data)
    {
        if(mylist->length>=mylist->listsize)
        {
            //if the memo is not enougth to use,realloc
            mylist->elem=(ElemType*)realloc(mylist->elem,LIST_INIT_SIZE+LIST_INCREMENT);
            if(mylist->elem==NULL)
            {
                printf("memo realloc is failed! sorry,friend ");
                return 1;
            }
            else
            {
                mylist->listsize+=LIST_INCREMENT;
            }
        }
        cpy(&mylist->elem[mylist->length],data);
        mylist->length+=1;
        return 0;
    }
    int list_find(Sqlist *mylist,ElemType data)
    {
        int i=0;
        for(i=0;i<mylist->length;i++)
        {
            if(elem_cmp(mylist->elem[i],data)>0)
            {
                return i+1;
            }
        }
        return 0;
    }
    int list_delete(Sqlist *mylist,ElemType data)
    {
        int i=0,result=list_find(mylist,data);
        if(result==0)
        {
            printf("not found the data ");
            return 1;
        }
        else
        {
            for(i=result-1;i<mylist->length;i++)
            {
                mylist->elem[i]=mylist->elem[i+1];
            }
            mylist->length--;
            return 0;
        }
    }
    int list_disp(Sqlist mylist)
    {
        system("clear");
        int j=0;
        for(j=0;j<mylist.length;j++)
        {
            printf("{%d,%d} ",mylist.elem[j].x,mylist.elem[j].y);
        }
        return 0;
    }

    生活的残酷,让我们习惯了忘记疲倦,一直奔向远方,追寻着自己的梦想。
  • 相关阅读:
    salesforce零基础学习(九十七)Big Object
    关于linux 终端的小命令
    小知识点 之 JVM -XX:MaxGCPauseMillis 与 -XX:GCTimeRatio
    查看SAP HANA数据库最大连接数
    解决Failed to launch preferred application for category TerminalEmulator. Failed to execute child process /usr/lib/x86_64-linux-gnu/xfce4/exo-1/exo-helper-1 (No such file or directory)
    RxJava简析
    《UNIX编程艺术》学习1
    windows下的 长路径
    为什么说「动态类型一时爽,代码重构火葬场」?-强、弱,静态、动态 类型对比
    分布式系统概述(Hadoop与HBase的前生今世)
  • 原文地址:https://www.cnblogs.com/L-Arikes/p/3898364.html
Copyright © 2011-2022 走看看