代码实现:
#include<bits/stdc++.h>
#define LISTSIZE 10001
#define true 1
#define false 0
using namespace std;
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
int Initlist(SqList &L)
{
L.elem=(int *)malloc(LISTSIZE *sizeof(int ));///给线性表开辟空间。
if(!L.elem)
{
exit(false);
}
L.length=0;
L.listsize=LISTSIZE;
return true;
} ///初始化线性表。
void Creat(SqList &L,int n)
{
for(int i=0;i<n;i++)
{
cin>>L.elem[i];
}
L.length=n;
}///存储数据。
void Move(SqList &L,int i)
{
int k=i;
for(k;k<L.length;k++)
{
L.elem[k]=L.elem[k+1];
}
}///若重复,将这个数往后的数往前移。
void Deletelist(SqList &L)
{
for(int i=0;i<L.length;i++)
{
for(int j=0;j<i;j++)///判断是否重复。
{
if(L.elem[j]==L.elem[i])///若重复,调用自定义Move函数。
{
int t;
t=i;
Move(L,t);
L.length--;
i--;
break;
}
}
}
}
void Display(SqList L)
{
for(int i=0;i<L.length-1;i++)
{
cout<<L.elem[i]<<' ';
}
cout<<L.elem[L.length-1]<<endl;
}///输出。
int main()
{
int n,m;
cin>>m;
while(m--)
{
cin>>n;
SqList L;
Initlist (L);
Creat(L,n);
Deletelist(L);
Display(L);
}
return 0;
}