数据结构的合并顺序表(非递减)

下标从一开始
typedef{
int *data;
int len;
}L;
L *merge1(L A,LB)

可以参考下这篇文章,希望对你有帮助:

L* merge1(L A, L B){
    L *C = new L;
    C->data = new int[A.len+B.len];
    C->len = A.len + B.len;
    int i=1,j=1,k=1;   //K记录c中元素的个数,i为A,j为B
    while(i<A.len && j<B.len){        //是否有其中一个加入完成
        if(A->data[i]<B.data[i]){
            C->data[k] = A.data[i];
            i++; k++;
        }
        else if(A.data[i]>B.data[j]){
            C->data[k] = B.data[j];
            j++; k++;
        }
        else{                            //A.data[i] = B.data[i]
            C->data[k] = A.data[i];
            i++; k++;
            C->data[k] = B.data[j];
            j++; k++;
        }    
    }
    while(i<A.len){                //B全部加入到C了,剩余的A中元素全部往C后面加入即可
        C->data[k] = A.data[i];
        i++;k++;
    }
    while(j<B.len){                //A全部加入到C了,同上
        C->data[k] = B.data[i];
        j++;k++;
    }
    return C;
}