综合题(删除)
/* 问题描述:删除有序表中重复的元素 注意有序这个条件 */ #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; }