zoukankan      html  css  js  c++  java
  • 数组库编程

    #include <stdio.h>
    #include <stdlib.h>
    #include <memory.h>
    #define datatype int
    
    struct array
    {
        datatype *pstart;//数组首地址
        int length;//长度
        int sortstat;//有序或者无序 0 无序 1 有序
    };
    
    void init(struct array *parr);
    void initwithdata(struct array *parr,datatype data);
    void initwitharray(struct array *parr,datatype *pdata,int datalength);
    void show(struct array *parr);
    void addobject(struct array *parr,datatype data);
    void addobjects(struct array *parr,datatype *pdata,int datalength);
    
    void main()
    {
        struct array mydata;
        int a[10] = {1,2,3,4,5,6,7,8,9,10};
        int b[6] = {11,12,13,14,15,16};
        int c[5] = {17,18,19,20,21};
        initwitharray(&mydata,a,10);
        show(&mydata);
        addobjects(&mydata,b,6);
        show(&mydata);
        addobjects(&mydata,c,5);
        show(&mydata);
    }
    
    
    
    void init(struct array *parr)
    {
        parr->pstart = NULL;
        parr->length = 0;
        parr->sortstat = 0;
    }
    
    void initwithdata(struct array *parr,datatype data)
    {
        parr->pstart=(datatype *)(sizeof(datatype));
        *(parr->pstart) = data;
        parr->length = 1;
        parr->sortstat = 0;
    }
    
    void initwitharray(struct array *parr,datatype *pdata,int datalength)
    {
        parr->pstart= (datatype *)malloc(sizeof(datatype)*datalength);
        memcpy(parr->pstart,pdata,sizeof(datatype)*datalength);
        parr->length = datalength;
        parr->sortstat = 0;
    }
    
    void show(struct array *parr)
    {
        if(parr == NULL || parr->pstart ==  NULL || parr->length == 0)
        {
            printf("没有");
            return;
        }
        else
        {
            printf("
    数组此时状态
    ");
            for(int i=0;i<parr->length;i++)
            {
                printf("%4d",parr->pstart[i]);
            }
        }
    
        printf("
    ");
    }
    
    void addobject(struct array *parr,datatype data)
    {
        if(parr != NULL)
        {
            if(parr->pstart == NULL || parr->length == 0)
            {
                initwithdata(parr,data);
            }
            else
            {
                parr->pstart = (datatype *)realloc(parr->pstart,parr->length*sizeof(datatype)+sizeof(datatype));
                parr->pstart[parr->length] = data;
                parr->length++;
            }
        }
        else
        {
            printf("%s","addobject error");
        }
    
    
    }
    
    void addobjects(struct array *parr,datatype *pdata,int datalength)
    {
        if(parr != NULL)
        {
            if(parr->pstart == NULL || parr->length == 0)
            {
                initwitharray(parr,pdata,datalength);
            }
            else
            {
                parr->pstart = (datatype *)realloc(parr->pstart,parr->length*sizeof(datatype)+datalength*sizeof(datatype));
                memcpy(parr->pstart+parr->length,pdata,datalength*sizeof(datatype));
                parr->length += datalength;
            }
        }
        else
        {
            printf("%s","addobjects error");
        }
        
    }
  • 相关阅读:
    ffplay 2.5.3 媒体播放器
    MinGW/MSYS 交叉编译环境搭建
    python chm 中文帮助 (2.7 和 3.4)
    wx.html2.WebView在 target="_blank" or rel="external" 没有反映的解决方法
    韩星5,6号 一锅双星技巧
    暖房子工程
    CStringUtf8ToUnicode
    燃气灶中心炉芯帽子生锈了,如何拆不下来?
    翻窗户消失的百岁老人/百岁老人跷家去 中文字幕
    CPinyin unicode汉字查找拼音(支持多音字)
  • 原文地址:https://www.cnblogs.com/xiaochi/p/5385785.html
Copyright © 2011-2022 走看看