删除线性表中所有值为x的数据元素

voide del_x_l(SqlList &L,Elemtype x){
    int k=0;//记录值不等于x的元素个数
    for(i=0;i<L.length;i++){
        if(L.data[i]!=x){
            L.data[k]=L.data[i];
            k++;//不等于x的元素增1
        }
    }
    L.length=k;
}




voide del_x_2(SqlList &L,Elemtype x){
    //用K记录顺序表L中等于X的元素个数,便扫描L边统计K,并将不等于X的元素前移k个位置,最后修改L的长度
    int k=0,i=0;//记录值等于x的元素个数
    while(i<L.length){
        if(L.data[i]==x)
            K++;
        else
            L.data[i-k]=L.data[i];//当前元素前移K个位置
        i++;
    }
    L.length=L.length-k;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券