c语言线性表的合并代码
时间: 2023-05-20 20:05:53 浏览: 76
以下是一个简单的 C 语言线性表合并代码:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} List;
void initList(List *L) {
L->length = 0;
}
void mergeList(List *La, List *Lb, List *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() {
List La, Lb, Lc;
initList(&La);
initList(&Lb);
initList(&Lc);
// 初始化线性表 La 和 Lb
La.data[0] = 1;
La.data[1] = 3;
La.data[2] = 5;
La.length = 3;
Lb.data[0] = 2;
Lb.data[1] = 4;
Lb.data[2] = 6;
Lb.length = 3;
// 合并线性表 La 和 Lb
mergeList(&La, &Lb, &Lc);
// 输出合并后的线性表 Lc
for (int i = 0; i < Lc.length; i++) {
printf("%d ", Lc.data[i]);
}
printf("\n");
return 0;
}