题目描述:
从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同。
算法思想:
核心代码:
int del_repeat_elment_3(SqList &L)
{
int i=0;
for(int j=1;j<L.length;j++)
{
if(L.data[i]!=L.data[j])
L.data[++i]=L.data[j];
}
L.length=i+1;//这里的i+1是因为i是从0开始的。注意课后习题的2.2中L.length=i;
//执行一次for循环里的一次if语句,实际上已经有A[0]和A[1]两个元素了,i此时为1.
return 0;
}
核心代码:
typedef struct SeqenceList
{
ElemType data[MaxSize];
int length;
}SqList;
void del_repete_element_0(SqList &L)
{
for(int i=0;i<L.length;i++)
for(int j=i+1;j<L.length;j++)
{
while(L.data[i]==L.data[j])
{
for(int k=j;k<L.length-1;k++)
{
L.data[k]=L.data[k+1];
}
L.length--;
if(L.length<=j)//about why add this , I still remain quesiton.or not will call in endless loop in whi