题目描述:从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。
void DeleteRepeat(SqList &L){
// 如果顺序表为空,直接返回
if(L.length == 0)
return;
int j = 1; // 用于遍历顺序表,从第二个元素开始
int i = 0; // 用于记录不重复元素的位置
// 从第二个元素开始遍历顺序表
while(j < L.length){
// 如果当前元素不等于前一个元素,则认为是一个新的不重复元素
if(L.data[j] != L.data[i]){
L.data[i + 1] = L.data[j]; // 将新的不重复元素放在 i+1 的位置
i++; // 移动到下一个位置
}
j++; // 继续遍历下一个元素
}
// 更新顺序表的长度,即删除重复元素后的长度
L.length = i;
}