3.已知线性表LA和LB分别采用顺序存储,且表中元素都按照升序排序,设计算法实现将LA和LB合并,合并后的线性表仍按照升序排序。
//第三题
LA[]={1,3,5,7}
LB[]={2,4,6,8}
LC[]={}
typedef struct
{
Elemtype *elem;//首地址
int length;//表长
int Listsize;//存储空间的大小
};
void merge(Sqlist LA,Sqlist LB,Sqlist LC)
{
int i=0,j=0,k=0;
while(i<=LA.length&&j<=LB.length){
if(LA.elem[i]<LB.elem[j]){
LC.elem[k++]=LA.elem[i++];
}
else{
LC.elem[k++]=LB.elem[j++];
}
while(j<LB.length){//如果LB还有剩余将其全部放在LC最后
LC.elem[k++]=LB.elem[j++];
}
while(i<LA.length){//如果LA还有剩余将其全部放在LC最后
LC.elem[k++]=LA.elem[i++];
}
LC.length=k;
}
}