美文网首页
2delete删除

2delete删除

作者: 定一 | 来源:发表于2020-05-23 19:52 被阅读0次
    #include<stdio.h>
    #include<malloc.h>      //包含了malloc函数 
    #include<stdlib.h>      //包含了exit函数 
    
    struct Arr 
    {
        int *pBase; //存储数组第一个元素的地址 
        int len;    //数组所能容纳的最大元素的个数 
        int cnt;    //当前数组有效元素个数 
    };
    
    void init_arr(struct Arr *pArr,int length); //初始化数组 
    bool append_arr(struct Arr *pArr,int val);  //追加 
    bool insert_arr(struct Arr *pArr,int pos,int val);//表示下标为0的为第一个 元素,pos值从1开始,pos=4,表示在第4个元素前面插入一个值 
    bool delete_arr(struct Arr *pArr,int pos,int *pVal);
    int get();  //获取元素值 
    bool is_empty(struct Arr *pArr);    
    bool is_full(struct Arr *pArr);
    void sort_arr();    //排序 
    void show_arr(struct Arr *pArr);    //展示 
    void inversion_arr(); //倒置 
    
    int main(){
        struct Arr arr;
        int val;
        init_arr(&arr,6);
        append_arr(&arr,1);
        append_arr(&arr,2);
        append_arr(&arr,3);
        append_arr(&arr,4);
        append_arr(&arr,5);
        show_arr(&arr);
    
        if(delete_arr(&arr,5,&val)){//【1】
            printf("删除元素成功!\n");
            printf("您删除的元素是:%d\n",val); 
        }else{
            printf("删除失败!\n");
        }
        
        show_arr(&arr);
        return 0;
    }
    //删除元素并返回删除元素的值
    bool delete_arr(struct Arr *pArr,int pos,int *pVal){
        int i;
        if(is_empty(pArr))
            return false;
        if(pos<1||pos>pArr->cnt)
            return false;
        //把val的地址赋给pval,*pval就是主函数的val 
        *pVal=pArr->pBase[pos-1];
        for(i=pos;i<pArr->cnt;++i)
        {
            pArr->pBase[i-1]=pArr->pBase[i]; 
        } 
        pArr->cnt--;
        return true;
    }
    
    image.png
    delete_arr(&arr,7,&val)
    
    image.png

    【1】把val的地址发送给pVal,那么就可以把通过delete中的pVal,来修改val的值了。我们只需要把待删除元素的值,赋给pVal所指的变量就可以了。 这样就修改了主函数的值,即通过形参pval修改了val的值,然后输出val即可

    本文只显示部分关键代码,详细代码,请参考上一篇文章。
    参考链接:https://www.bilibili.com/video/BV11s41167h6?p=13

    相关文章

      网友评论

          本文标题:2delete删除

          本文链接:https://www.haomeiwen.com/subject/leilahtx.html