从有序表中删除所有其值重复的元素,使表中所有元素值均不同
#include <stdio.h>
#define maxsize 50
typedef int ElemType;
typedef struct{
ElemType data[maxsize];
int length;
}SqList;
bool Delete(SqList &L)
{
if(L.length==0) return false;
int k=0;
for(int i=1; i<L.length; i++)
{
if(L.data[i]==L.data[i-1])
{
k++;
}else
{
L.data[i-k] = L.data[i];
}
}
L.length= L.length-k;
return true;
}
int main() {
SqList L;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.data[3] = 3;
L.data[4] = 5;
L.data[5] = 6;
L.data[6] = 7;
L.data[7] = 7;
L.data[8] = 7;
L.data[9] = 7;
L.length = 10;
Delete(L);
for(int i = 0; i<L.length; i++)
{
printf("%d ", L.data[i]);
}
return 0;
}