今天用C语言实现了数据结构中线性表的合并,即:
已知La与Lb中的数据元素按照非递减排序,将La,Lb的元素合并到Lc中,要求Lc中的数据元素也按照非递减排列。
最初由于粗心,我是这么写的:
void mergeList3(sqlist * La,sqlist * Lb,sqlist * Lc)
{
//由于不调用已经编写好的函数,所以我们必须自己处理存储空间
// 分配问题,同事自己取得La与Lb的数据元素进行比较
elemtype *la,*lb,*lc;
Lc->size=La->length+Lb->length;
Lc->length=La->length+Lb->length;
la=La->elem;
lb=Lb->elem;
Lc->elem=(elemtype*)malloc(Lc->size*sizeof(elemtype));
if(!Lc->elem)
exit(OVERFLOW2);
lc=Lc->elem;
while((la<=(la+La->length-1))&&(lb<=(lb+Lb->length-1))){
if(*la<=*lb){
*lc++=*la++;
}else{
*lc++=*lb++;
}
}
while(la<=(la+La->length-1)){
*lc++=*la++;
}
while(lb<=(lb+Lb->length-1)){
*lc++&#