typedef struct
{ int len;
type data[MAX];
}sqList;
int delsameele3(sqList *a,type x)
{ //每遍历一个元素时都考虑其向前移动的位数
int k=0;
for(int i=0;i<a->len;i++)
if(a->data[i]!=x)
a->data[i-k]=a->data[i];
else k++;
a->len-=k;//否则最后的k个元素将重复出现,也符合定义
return 0;
// 方法二:
// for(int i=0;i<a->len;i++)
// if(a->data[i]!=x)
// a->data[k++]->data[i];//删除后的顺序表k上的元素总等于按顺序不等于x的i位置的元素
// a->len=k;
}
删除长度为n的顺序表中所有值为x的元素,要求时间复杂度0(n),空间复杂度为0(1)
最新推荐文章于 2021-09-09 19:13:08 发布