不存在用户定义的从 "SeqList" 到 "SeqList" 的适当转换


/*将两个顺序表合并为一个新的有序顺序表
并由函数返回结果顺序表*/
#include<iostream>
using namespace std;
#define Max = 10
struct SeqList{
    int data[5]={1,2,3,5,7};
    int length = 5;
}L1;

struct SeqList{
    int data[5]={3,4,6,8,9};
    int length = 5;
}L2;

struct SeqList{
    int data[10];
    int length = 0;
}L3;

bool Merge(SeqList A,SeqList B,SeqList &C){
    int i=0,j=0,k=0;
    while(i<A.length && j<B.length){
        if(A.data[i]<=B.data[j]){
            C.data[k++] = A.data[i++];
        }
        else{
            C.data[k++] = B.data[j++];
        }
    }
    while(i<A.length){
        C.data[k++] = A.data[i++];
    }
    while(i<B.length){
        C.data[k++] = B.data[i++];
    }
    C.length=k;
    return true;
}

int main(){
    Merge(L1,L2,L3);
    for (int i = 0; i < L3.length; i++)
            {
                cout<<L3.data[i]<<" ";
            }
    cout<<endl<<"length:"<<L3.length<<endl;
    return 0;
}

你为啥三个结构都用SeqList呢?不是自己找事么?
你让Merge函数如何分辨三个SeqList参数各自是哪个啊

 
/*将两个顺序表合并为一个新的有序顺序表
并由函数返回结果顺序表*/
#include<iostream>
using namespace std;
#define Max = 10
struct SeqList{
    int data[10];
    int length = 0;
}L1,L2,L3;
bool Merge(SeqList A,SeqList B,SeqList &C){
    int i=0,j=0,k=0;
    while(i<A.length && j<B.length){
        if(A.data[i]<=B.data[j]){
            C.data[k++] = A.data[i++];
        }
        else{
            C.data[k++] = B.data[j++];
        }
    }
    while(i<A.length){
        C.data[k++] = A.data[i++];
    }
    while(i<B.length){
        C.data[k++] = B.data[i++];
    }
    C.length=k;
    return true;
}
int main(){
    int data1[5]={1,2,3,5,7};
    memcpy(L1.data,data1,5);
    L1.length = 5;
    int data2[5]={3,4,6,8,9};
    memcpy(L2.data,data2,5);
    L2.length = 5;
    Merge(L1,L2,L3);
    for (int i = 0; i < L3.length; i++)
            {
                cout<<L3.data[i]<<" ";
            }
    cout<<endl<<"length:"<<L3.length<<endl;
    return 0;
}