天天看点

顺序表之两个有序顺序表合并

(2.2.4-7)将两个有序顺序表合并为一个新的有序顺序表。

思路:两个有序表分别从头开始比较,将较小值放入新表;如果一个顺序表已经到底另外一个还有,直接将还有值的那个表所有尾插入新表。

代码如下:

void MergList(SqList &L1,SqList &L2,SqList &L3){
   int i=0,j=0,k=0;
   {
   	while(i<L1.length && j<L2.length)
   	{
   		if(L1.data[i]<=L2.data[j])
   		{
   			L3.data[k++]=L1.data[i++];
   		}
   		else{
   			L3.data[k++]=L2.data[j++];
   		}
   	}
   	while(i<L1.length){
	    L3.data[k++]=L1.data[i++];
   }
    while(j<L2.length){
    	L3.data[k++]=L2.data[j++];
    }
    L3.length=k;
   }
}
           

运行截图:

顺序表之两个有序顺序表合并