#include "stdio.h"
#include "stdlib.h"
#define MAXSIZE 15 //顺序表最大长度
#define ERROR 0
#define OK 1
typedef struct Seqlist
{
int data[MAXSIZE];
int length; //顺序表实际长度
}Seqlist;
Seqlist *init_list(int dt[], int len){
//初始化顺序表函数,采用malloc或new为L分配空间,
//并将dt数组中的内容拷贝至L->data中,最后将生成好的顺序表指针返回。参数len为dt数组的长度。
Seqlist* L;
L = new Seqlist;
if(!L->data) return ERROR;
for(int i=0;i<len;i++){
L->data[i]=dt[i];
}
L->length=len;
return L;
}
void delete_list_dup(Seqlist *L){
//删除L中多余的值相同元素
if(L->length!=0)
for(int i=0;i<L->length;i++){
for(int j=i+1;j<L->length;j++){
if(L->data[i]==L->data[j]){
for(int k=j;k<L->length;k++)
L->data[k]=L->data[k+1];
i--;
L->length-=1;
}
}
}
else printf("空表!!");
}
void print_list(Seqlist *L){
//打印L->data中的元素,用空格隔开
if(L->length!=0)
for(int i=0;i<L->length;i++){
printf("%d ",L->data[i]);
}
else printf("空表!!");
}
main(){
int dt[MAXSIZE]={1,1,2,3,5,5,5,6,10,12,12,15,15,15,15};
Seqlist *L=init_list(dt,sizeof(dt)/sizeof(int));
delete_list_dup(L);
print_list(L);
}