顺序表的删除-巧用基础算法查找(2)

已知长度为n的线性表A采用顺序储存结构,请写一时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。(题目要求元素间相对顺序不变)

分析:使用指针j遍历list找到不等于item的元素,找到item的元素跳过。使用i指针保存不等于item的元素。最后list元素的个数是i。在这里插入图片描述
代码实现:
int i=0,j=0;
while(j<curLength)
{
if(aList[j]==item) j++;
else aList[i++]=aList[j++];
}

猜你喜欢

转载自blog.csdn.net/kleinzhen/article/details/108433214