/*
问题描述:删除有序表中重复的元素
注意有序这个条件
*/
#include<stdio.h>
#define MaxSize 50
typedef struct LNode{
int data[MaxSize];
int length;
}LNode;
//初始化顺序表
void init(LNode &L){
L.length = 0;
}
//构建顺序表
void create(LNode &L){
init(L);
int x;
scanf("%d",&x);
while(x!=-1&&L.length<MaxSize){
L.data[L.length] = x;
L.length++;
scanf("%d",&x);
}
}
//显示顺序表内容
void show(LNode L){
int i = 0;
while(i<L.length){
printf("%d ",L.data[i]);
i++;
}
}
//删除元素
void delete1(LNode &L){
int k;
int j;//工作指针
for(k=0,j=1;j<L.length;j++){ //当遇见多个变量初始化时要用“,”隔开
if(L.data[k]!=L.data[j]){
L.data[++k]=L.data[j];
}
}
L.length = k + 1;
}
int main(){
LNode L;
create(L);
show(L);
printf("\n");
delete1(L);
show(L);
return 0;
}
