编辑代码

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 100

typedef struct {
    int data[MAXSIZE];
    int length;
} SqList;

// 初始化顺序表
void InitList(SqList *L) {
    L->length = 0;
}

// 合并顺序表
void MergeList(SqList *La, SqList *Lb, SqList *Lc) {
    int i = 0, j = 0, k = 0;
    while (i < La->length && j < Lb->length) {
        if (La->data[i] <= Lb->data[j]) {
            Lc->data[k++] = La->data[i++];
        } else {
            Lc->data[k++] = Lb->data[j++];
        }
    }
    while (i < La->length) {
        Lc->data[k++] = La->data[i++];
    }
    while (j < Lb->length) {
        Lc->data[k++] = Lb->data[j++];
    }
    Lc->length = k;
}

int main() {
    SqList La, Lb, Lc;
    InitList(&La);
    InitList(&Lb);
    InitList(&Lc);

    // 假设给 La 和 Lb 赋值
    La.length = 3;
    La.data[0] = 1;
    La.data[1] = 3;
    La.data[2] = 5;

    Lb.length = 4;
    Lb.data[0] = 2;
    Lb.data[1] = 4;
    Lb.data[2] = 6;
    Lb.data[3] = 7;

    MergeList(&La, &Lb, &Lc);

    printf("合并后的顺序表 Lc 为:");
    for (int i = 0; i < Lc.length; i++) {
        printf("%d ", Lc.data[i]);
    }
    printf("\n");

    return 0;
}