对长度为 n 的顺序表 L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1) 的算法,该算法删除线性表中所有值为 x 的数据元素。
void deletex(List &L,int x){
int c = 0;
for(int i = 0;i < L.Length;i++){
if(L.data[i]==x) c++;
else L.data[i-c] = L.data[i];
}
L.Length-=c;
}
对长度为 n 的顺序表 L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1) 的算法,该算法删除线性表中所有值为 x 的数据元素。
void deletex(List &L,int x){
int c = 0;
for(int i = 0;i < L.Length;i++){
if(L.data[i]==x) c++;
else L.data[i-c] = L.data[i];
}
L.Length-=c;
}