【数据结构】【顺序表算法】 删除特定值

  • 题目:对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除顺序表中所有值为x的数据元素

  • 方法1

cpp 复制代码
void del_x_1(SqList &L,ElemType x){
    int k=0,i;
    for(i=0;i<L.length;i++){
        if(L.data[i]!=x){
           L.data[k]=L.data[i];
           k++;
        }
    }
    L.length=k;
}
  • 方法2

cpp 复制代码
void del_x_2(SqList &L,ElemType x){
    int k=0,i=0;
    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;
}
相关推荐
2301_821369612 分钟前
嵌入式实时C++编程
开发语言·c++·算法
sjjhd6523 分钟前
多核并行计算优化
开发语言·c++·算法
weixin_3954489118 分钟前
main.c_cursor_0130
前端·网络·算法
半壶清水1 小时前
[软考网规考点笔记]-操作系统核心知识及历年真题解析
网络·网络协议·算法
Tansmjs1 小时前
实时数据可视化库
开发语言·c++·算法
WBluuue1 小时前
Codeforces 1075 Div2(ABC1C2D1D2)
c++·算法
2401_838472512 小时前
C++模拟器开发实践
开发语言·c++·算法
s1hiyu2 小时前
实时控制系统验证
开发语言·c++·算法
daad7772 小时前
V4L2_mipi-csi
算法
2301_765703142 小时前
C++代码复杂度控制
开发语言·c++·算法