顺序表应用1:多余元素删除之移位算法

来源:互联网 发布:文明5 贸易网络 编辑:程序博客网 时间:2024/06/11 12:13

#include<stdio.h>
typedef struct
{
    int data[10010];
} SL;
void creatlist(SL *l, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        scanf("%d",&l->data[i]);
    }
}
int delelist(SL *l,int n)
{
    int i, j, k;
        for(i = 0; i < n - 1; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(l->data[i] == l->data[j])
                {
                    n--;
                    for(k = j; k < n; k++)
                    {
                        l->data[k] = l->data[k+1];
                    }
                    j--;
                }
            }
        }
        return n;
}
void priselist(SL *l, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        if(i == n - 1)
            printf("%d\n",l->data[i]);
        else
            printf("%d ",l->data[i]);
    }
}
int main()
{
    int n, m;
    scanf("%d",&n);
    while(n--)
    {
       scanf("%d",&m);
       SL l;
     creatlist(&l,m);
       m = delelist(&l,m);
       priselist(&l,m);
    }
    return 0;
}

原创粉丝点击