長度爲n的順序表L,編寫一個時間複雜度爲O(n),空間複雜度爲O(1)的算法,該算法刪除線性表中所有值爲x的數據元素。
解法一:
void del_x_l_1(Sqlist &L,int x){
int k=0;
for(int i=0;i<L.length;i++){
if(L.data[i]!=x)
L.data[k++]=L.data[i];
}
L.length=k;
}
解法二:
void del_x_l_2(Sqlist &L,int x){
int k=0;
for(int i=0;i<L.length;i++){
if(L.data[i]!=x)
L.data[i-k]=L.data[i];
else
k++;
}
L.length-=k;
}