考研数据结构(每日一题)
题目:从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。
算法图解:
算法思想:
第一个元素肯定不重复,依次向后扫描,不重复就保留,重复就不保留,以此来删除顺序表中重复的元素。
完整代码:
bool Del_same(Sqlist &L){
if(L.length == 0){ //
return false;
}
//遍历链表
for(int i = 0, j = 1; j < L.length; j ++){
if(Ldata[i] != L.data[j]){ //如果i的值不等于j的值,说明不重复
i ++; //往后移一位
}
L.length = i + 1; //链表的长度
return true;
}
}