c++代码实现顺序表合并
时间: 2023-05-30 09:02:07 浏览: 59
#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 CreateList(SqList *L) {
int i, n;
printf("请输入顺序表的长度:");
scanf("%d", &n);
printf("请输入顺序表的元素:");
for (i = 0; i < n; i++) {
scanf("%d", &L->data[i]);
}
L->length = n;
}
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;
}
void PrintList(SqList *L) {
int i;
printf("顺序表的元素为:");
for (i = 0; i < L->length; i++) {
printf("%d ", L->data[i]);
}
printf("\n");
}
int main() {
SqList La, Lb, Lc;
InitList(&La);
InitList(&Lb);
InitList(&Lc);
printf("请输入La顺序表:\n");
CreateList(&La);
printf("请输入Lb顺序表:\n");
CreateList(&Lb);
MergeList(&La, &Lb, &Lc);
printf("合并后的顺序表为:\n");
PrintList(&Lc);
return 0;
}