一.算法思想
采用类似于插入排序的思想,将数组的第一个元素视为非重复的有序表,之后依次判断后面的元素是否与前面的元素重复,若不重复则插入到前面非重复有序表的最后,反之则继续往后判断
二.源代码
//有序顺序表中删除值重复的元素
void WangDao6DeleteRepeatElement(List list) {
int i, j; //i用来储存第一个不相同的元素,j为工作指针(即一直往后扫描)
if (list->Last==-1) {
printf("顺序表为空");
}
for (i = 0, j = 1; j <= list->Last - 1;j++) {
//寻找下一个与上个元素值不同的元素,找到后,将元素往前移
if (list->Data[j]!=list->Data[i]) {
list->Data[++i] = list->Data[j];
}
}
list->Last = i;
}