//已知线性表La和Lb中的数据元素按值非递减排列
//归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列
void MergeList(SqList La,SqList Lb,SqList *Lc){
InitList(Lc);
int alen=La.length;
int blen=Lb.length;
int i=1,j=1,k=0;
ElemType ai,bj;
while(i<=alen && j<=blen){
GetElem(La,i,&ai);
GetElem(Lb,j,&bj);
if(ai<bj){
ListInsert(Lc,++k,ai);
i++;
}else{
ListInsert(Lc,++k,bj);
j++;
}
}
while(i<=alen){
GetElem(La,i,&ai);
ListInsert(Lc,++k,ai);
i++;
}
while(j<=blen){
GetElem(Lb,j,&bj);
ListInsert(Lc,++k,bj);
j++;
}
}
本文介绍了一种用于归并两个非递减排列线性表的算法,通过逐个比较两个表中的元素,并将较小的元素插入到新的线性表中,实现两个线性表的归并,最终得到一个新的非递减排列的线性表。
955

被折叠的 条评论
为什么被折叠?



