天天看點

順序表之兩個有序順序表合并

(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;
   }
}
           

運作截圖:

順序表之兩個有序順序表合并