已知一个顺序表中的元素按元素值非递减有序排列,编写一个函数,删除向量中多余的值相同的元素。

admin2014-12-25  53

问题 已知一个顺序表中的元素按元素值非递减有序排列,编写一个函数,删除向量中多余的值相同的元素。

选项

答案本题的算法思想:由于向量中的元素按元素值非递减有序排列,值相同的元素必为相邻的元素,因此依次比较相邻两个元素,若值相等,则删除其中一个,否则继续向后查找。实现本题功能的函数如下: voiddelete(SqList&A,int n) /*向量A的长度为n*/ { int i=1,j; while(i<=n一1) if(A[i]!=A[i+1])i++; /*元素值不相等,继续向下找*/ else { for(j=(i+2);j<=n;j++)A[j—1]=A[j]; /*删除第i+1个元素*/ n一; /*向量长度减1*/ } }

解析
转载请注明原文地址:https://kaotiyun.com/show/riVx777K
0

最新回复(0)