• 数据结构学习系列之顺序表的两种删除方式


    • 方式1:
    • 在顺序表的末端删除所存储的数据元素,代码如下:
    • 示例代码:
    int delete_seq_list_1(list_t *seq_list){
    
        if(NULL == seq_list){
    
            printf("入参为NULL\n");
    
            return -1;
    
        }
        if(0 == seq_list->count){
    
            printf("顺序表为空,删除失败\n");
    
            return -1;
        }
        seq_list->count--;
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 注意事项:

    • 1.形参传入到具有删除数据元素功能的函数后,需要做入参合理性检查

    • 2.还需要判断此时顺序表所存储的数据元素是否为空

    • 3.count是计数的变量每次删除一个数据元素后,需要减1,此处易忽略

    • 方式2:

    • 顺序表的任意位置删除数据元素,代码如下:

    • 示例代码:

    int delete_seq_list_2(list_t *seq_list,int pos){
    
        if(NULL == seq_list){
    
            printf("入参为NULL\n");
    
            return -1;
    
        }
        if(0 == seq_list->count){
    
            printf("顺序表为空,删除失败\n");
    
            return -1;
        }
    
         if( pos < 0 || pos >= seq_list->count){
    
            printf("删除位置不合理,删除失败\n");
    
            return -1;
    
        }
    
        int i = pos;
    
        while(i < seq_list->count-1){
    
            seq_list->a[i] = seq_list->a[i+1];
    
            i++;
    
        }
    
        seq_list->count--;
    
        return 0;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 注意事项:
    • 1.同方式1:形参传入到具有删除数据元素功能的函数后,需要做入参合理性检查
    • 2.也同方式1:还需要判断此时顺序表所存储的数据元素是否为空
    • 3.判断所要删除数据元素的位置在顺序表中是否合理,一定要区别在任意位置插入数据元素的位置合理性检查,两者略有不同,防止越界操作,所导致运行结果出错
    • 4.可以采用while循环或者for循环的方式找到所要删除数据元素的位置后,此位置之后的所有数据元素,依次向前挪动一个位置,目的是删除所指定的待删除位置
    • 5.删除所指定位置的数据元素后,记得count减1
  • 相关阅读:
    使用html+css实现一个静态页面(含源码)
    java基础10题
    【UniApp】-uni-app-动态计算字体大小(苹果计算器)
    GoldenEye
    c语言 判断两个文件是否相同
    TCP/IP(十一)TCP的连接管理(八)socket网络编程
    Educational Codeforces Round 134 (Rated for Div. 2) A~D
    抛弃BeanUnits.copyProperties三部曲
    半同态加密(Partially Homomorphic Encryption, PHE)
    在word、ppt、excel编辑软件标题栏顶部左上角加入自定义功能:另存为、导出PDF
  • 原文地址:https://blog.csdn.net/qq_41878292/article/details/132640671