1. 程式人生 > >順序表刪除重複元素,並使剩餘元素間的相對次序保持不變

順序表刪除重複元素,並使剩餘元素間的相對次序保持不變

設計一個演算法從順序表中刪除重複元素,並使剩餘元素間的相對次序保持不變。

解:假設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;
}