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

  • 题目:对长度为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;
}
相关推荐
C+++Python21 小时前
序列式容器 - list
数据结构·windows·list
ZPC821021 小时前
opencv 实现图像拼接
人工智能·python·算法·机器人
爱学习的阿磊1 天前
C++代码动态分析
开发语言·c++·算法
WWZZ20251 天前
C++:STL(容器deque)
开发语言·c++·算法·大模型·具身智能
AI科技星1 天前
加速运动正电荷产生加速度反向引力场的详细求导过程
人工智能·线性代数·算法·机器学习·矩阵·概率论
近津薪荼1 天前
优选算法——双指针专题3(快慢双指针)
c++·学习·算法
shengli7221 天前
C++与硬件交互编程
开发语言·c++·算法
tobias.b1 天前
408真题解析-2010-6-数据结构-哈夫曼树
数据结构·计算机考研·408真题解析
tobias.b1 天前
408真题解析-2010-7-数据结构-无向连通图
数据结构·算法·图论·计算机考研·408真题解析
良木生香1 天前
【鼠鼠优选算法-双指针】003:快乐数 & 004:盛水最多的容器
算法