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");
        }
        
    }
  • 相关阅读:
    Spring Boot启用Swagger2
    Springboot 注解最全详解
    spring-boot-starter-data-jpa 解析
    springboot 微信支付
    springboot整合PageHelper
    SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问
    Springboot 发送短信验证码
    Java volatile关键字的作用
    Android兼容性测试应该怎么做逼格更高呢?
    hadoop日志【2】
  • 原文地址:https://www.cnblogs.com/xiaochi/p/5385785.html
Copyright © 2011-2022 走看看