题目
已知长度为n的线性表L采用顺序存储结构,编写-一个时间复杂度为O(n)、空间
复杂度为0(1)的算法,该算法删除线性表中所有值为x的数据元素。
代码设计思路
线性表时间复杂度为n说明顺序表只能遍历一遍,那么我们就可以考虑思路把L中为x的元素直接用后面元素给他覆盖掉,然后最后我们把顺序表长度减少L的个数
实现代码
void Del_x(SqList& L, Elemtype x)
{
int k, i=0;
while (i < L.Lenth)
{
if (L.data[i] == x)
k++;
else
L.data[i - k] = L.data[i];
i++;
}
L.Lenth = L.lenth-k;
}