设计一个算法从顺序表中删除重复元素,并使剩余元素间的相对次序保持不变。
解:假设L->data[0]~L->data[j]中没有重复元素。检测L->data[i](i<j<L.length),若L->data[i]和L->data[0]~L->data[j]中任何一个元素都不相同,则将L->data[i]存入L->data[j+1]中。
void delsame(Sqlist *l)
{
int j=1;
int i=0;
int len=1;
while(j<l->length)
{
for(i=0;i<len;++i)
{
if(l->data[i]==l->data[j])
break;
}
if(i==len)
l->data[len++]=l->data[j++];
else
j++;
}
l->length=len;
}