#include <stdio.h>
#include <malloc.h>
#define MAXLENGHT 100
typedef struct
{
int *elem;
int length;
int data[MAXLENGHT];
} Val;
void InitList(Val *L)
{
L->elem = (int*)malloc(MAXLENGHT * sizeof(int));
L->length = 0;
}
void CreateList(Val *L)
{
int data, i = 0;
scanf("%d",&data);
while(!(data < 0))
{
L->elem[i++]=data;
L->length++;
scanf("%d",&data);
}
}
void print(Val List)
{
int i = 0;
while(i < List.length)
{
printf("%d ",List.elem[i++]);
}
printf("\n");
}
void distinc(Val *L)
{
int *p, *q, *r = L->length + L->elem;
for(p=L->elem, q=p+1; q<r; q++)
{
if(*p!=*q)
{
*(p+1)=*q;
p++;
}
else
{
L->length--;
}
}
}
int main()
{
Val Elem;
InitList(&Elem);
printf("请输入去除重复元素前的顺序表:(负数代表结束输入)\n");
CreateList(&Elem);
printf("去除重复元素后的顺序表:\n");
distinc(&Elem);
print(Elem);
return 0;
}