倒置数组错误,自己运行错误


void Reverse1(SqList &L, int left, int right, int arraySize){
    if (left >= right || right >= arraySize)
        return;
    int mid = (left + right) / 2;

    for (int i = 0; i <= mid - left; i++){
        ElemType temp = L.data[left + i];
        L.data[left + i] = L.data[left - i];
        L.data[left - i] = temp;
    }
}

//*8.在一个A[M+N]存放两个线性表(a1,a2,...am)(b1,b2,...bn).
//是编写一个函数,使两个顺序表位置互换

//**倒置(a1,a2,...am,b1,b2,....bn)函数变成(b1,b2,....bn,a1,a2.....,am)
void Exchange_SqList(SqList L)
{
    int m,n,arraySize;
    printf("请输入am的项数:\n");
    scanf_s("%d", &m);
    printf("请输入bn的项数:\n");
    scanf_s("%d", &n);
    printf("请输入am,bn的总项数:\n");
    scanf_s("%d", &arraySize);
    


    Reverse1(L, 0, m+n-1, arraySize);
    PrintList(L);
    Reverse1(L, 0, n-1, arraySize);
    PrintList(L);
    Reverse1(L, n, n+m-1, arraySize);
    PrintList(L);
}

img