已知顺序表La中数据元素按非递减有序排列。试写一个算法,将元素x插到La的合适位置上,保持该表的有序性。Status ListInsert_Sq(SqList&La,ElemType x){
pa=La.elem;
if(La.length>=La.listsize){
newbase=(Elemtype*)realloc(La.elem,(La.listsize+LISTINCREMENT)*sizeof(Elemtype));
if (!newbase)exit(OVERFLOW);
}
if(x<*pa)pa++;
for(p=&(La.elem[La.length-1]);p>=pa;--p)*(p+1)=*p;
*pa=x;
++La.length;
returnOK;
}
试写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2, ..., an-1,an)逆置为(an,an-1, ..., a2,a1)
Status ListReverse-Sq(SqList&L){
int i=1,j=1;
while(i<=L.length/2&&j<=L.length/2){
L.elem[L.length-j]<-->L.elem[i];i++;j++;
}
}
2.7 已知线性表L采用顺序存储结构存放。对两种不同情况分别写出算法,删除L中值相同的多余元素,使得L中没有重复元素:(1)L中数据元素无序排列;(2)L中数据元素非递减有序排列。
2.8 将2.7题中L的存储结构改为单链表,写出相应的实现算法。
viodChange_list(SqList&La,LinkList&Lb){
pa=La;
for(;pa<=La.length;pa++){
Lb=pa;Lb=Lb->next;
}
这是我们的作业题,我不太会做,勉强写完了,还望好人指导指导,多谢了…