已知线性表LA和LB中的元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。请用c语言程序实现上述代码。
时间: 2023-05-11 10:02:17 浏览: 337
线性表的顺序表示和插入、删除、归并C语言代码实现
4星 · 用户满意度95%
以下是C语言程序实现上述代码:
#include <stdio.h>
void merge(int LA[], int LB[], int LC[], int lenA, int lenB) {
int i = 0, j = 0, k = 0;
while (i < lenA && j < lenB) {
if (LA[i] <= LB[j]) {
LC[k++] = LA[i++];
} else {
LC[k++] = LB[j++];
}
}
while (i < lenA) {
LC[k++] = LA[i++];
}
while (j < lenB) {
LC[k++] = LB[j++];
}
}
int main() {
int LA[] = {1, 3, 5, 7, 9};
int LB[] = {2, 4, 6, 8, 10};
int lenA = sizeof(LA) / sizeof(int);
int lenB = sizeof(LB) / sizeof(int);
int LC[lenA + lenB];
merge(LA, LB, LC, lenA, lenB);
printf("Merged array: ");
for (int i = 0; i < lenA + lenB; i++) {
printf("%d ", LC[i]);
}
printf("\n");
return 0;
}
阅读全文