一 题目描述
长度为n的顺序表,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为数据X的数据元素。
void del_x(Sqlist &L,Elemtype x)
{
int k=0;
for(int i=0;i<L.lenght;i++)
{
if(L.data[i]!=x)
L.data[k++]=L.data[i];
}
L.lenght=k;
}
二 题目描述
从有序顺序表中删除所有其值重复的元素,使表中所有的元素的值均不同。
关键代码
bool del_Same(Sqlist &L)
{ if(L.lenght==0) return false;
int k=0,i,j;
for(i=0,j=1;j<L.lenght;j++)
{
if(L.data[i]!=L.data[j])
L.data[++i]=L.data[j];
}
L.lenght=i+1;
return true;
}