bool Delete_Same(SeqList &L){
// 检查顺序表是否为空,如果为空,则没有重复元素可删除,直接返回false
if(L.length == 0) return false;
// 如果顺序表只有一个元素,那么它自然没有重复,所以直接返回true
if(L.length == 1) return true;
// 初始化i为0,表示当前非重复元素应该放置的位置
int i = 0;
// 从顺序表的第二个元素开始遍历(j从1开始)
for(int j = 1; j < L.length; j++){
// 检查当前元素(L.data[j])是否与前一个非重复元素(L.data[i])不同
if(L.data[j] != L.data[i]){
// 如果不同,说明L.data[j]是一个新的非重复元素
// 将它复制到L.data[i+1]的位置(因为i指向的是当前最后一个非重复元素的位置)
// 并递增i,以便为下一个非重复元素做准备
L.data[++i] = L.data[j];
}
// 如果L.data[j]与前一个非重复元素相同,则不做任何操作,继续检查下一个元素
}
// 遍历结束后,i的值将是最后一个非重复元素的索引
// 因此,顺序表的新长度应该是i+1(因为索引是从0开始的)
L.length = i + 1;
// 函数成功执行,删除了所有重复元素,返回true
return true;
}
2.15删除有序顺序表中所有重复值
最新推荐文章于 2024-10-31 16:16:13 发布