1.从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同
bool Delete_same(SeqList &L){
if(L.length==0)
return false;
int i,j; //i存储第一个不相同的元素,j工作指针
for(i=0,j=1;j<L.length;j++)
if(L.data[i]!=L.data[j]) //查找下一个与上一个元素值不同的元素
L.data[++i]=L.data[j]; //找到后则将元素前移
L.length=i+1;}
2.将两个有序顺序表合并成一个新的有序顺序表,并由函数返回结果顺序表
bool Merge(SeqList A,SeqList B,SeqList &C){
//合并有序顺序表A与B成为一个新的有序顺序表C
if (A.length+B.length<C.maxsize)
return false; //大于顺序表的最大长度
int i=0,j=0,k=0;
while(i<A.length&&j<B.length){
//循环,两两比较,小者存入结果表
if(A.date[i]<=B.data[j])
C.data[k++]=A.data[i++];
else
C.data[k++]=B.data[j++];}
while(i<A.length) //还剩一个没有比较完的顺序表
C.data[k++]=A.data[i++];
while(j<B.length)
C.data[k++]=B.data[j++];
C.length=k;
return true;}