美文网首页
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删除

    【1】把val的地址发送给pVal,那么就可以把通过delete中的pVal,来修改val的值了。我们只需要把待删...

  • 删除!删除!

    我是展鹏教育的大邢老师,这是我加入日记星球的第77篇原创日记。 春季开学后就发现U盘不见了,怎么找都找不到,期待它...

  • 删除不了

    删除不了 删除不了 删除不了

  • 说说 Redis 缓存删除策略

    Redis 缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。 1 定时删除 为 ...

  • Linux命令行与Shell-----常用命令

    rm --删除 -d 删除空目录 -f 强制删除 -r 递归删除目录 -i 删除前提示 s...

  • Python删除文件及目录

    import osimport shutil 删除文件删除单个文件 删除目录删除单个目录(必须是空目录) 递归删除...

  • 封装 MySQL(四)封装 delete—— deleteMod

    接上。。。 删除语句 从需求来说,删除分为物理删除和逻辑删除,这里的删除指通过主键ID,物理删除记录 这个简单粗暴...

  • Kubernetes pv无法删除问题

    正常删除pvc,pv等的步骤 正确删除pv的步骤是删除使用pvc的pod,再删除pvc,最后删除pv pv无法删除...

  • linux sed 命令

    删除第一行 范围删除,删除1-3行 删除第n行 删除最后一行

  • neo4j-delete语法

    删除节点、关系或路径 删除单个节点 删除所有节点和关系 删除节点和它的关系 只删除关系

网友评论

      本文标题:2delete删除

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