顺序表应用1:多余元素删除之移位算法sdu
#include <bits/stdc++.h>
using namespace std
#define maxsize 10001
typedef struct
{
int *data;
}sqlist;
void init(sqlist &l)
{
l.data=new int [maxsize];//建立线性表
}
void input(sqlist &l,int m)//输入数值
{
for(int i=0;i<m;i++)
{
scanf("%d",&l.data[i]);
}
}
int dele(sqlist &l,int m)//删除重复数字,移位
{
int i,j,k;
k=0;
while(k<m)
{
for(i=k+1;i<m;i++)
{
if(l.data[i]==l.data[k])
{
for(j=i;j<m;j++)
{
l.data[j]=l.data[j+1];
}
m--;
i--;
}
}
k++;
}
return k;
}
void output(sqlist &l,int m)//输出删除移位后的数
{
for(int i=0;i<m;i++)
{
printf("%d%c",l.data[i],i==m-1?'\n':' ');
}
}
int main()
{
int n,m,k;
sqlist l;
init(l);//建立线性表
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
input(l,m);//输入数值
k=dele(l,m);//删数,移位
output(l,k);//输出
}
return 0;
}```
~~
/