用c语言分别定义两个顺序表,将它们合并。
时间: 2023-05-21 11:01:27 浏览: 94
可以使用以下代码来定义两个顺序表并将它们合并:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void merge(SqList *list1, SqList *list2, SqList *result) {
int i = 0, j = 0, k = 0;
while (i < list1->length && j < list2->length) {
if (list1->data[i] < list2->data[j]) {
result->data[k++] = list1->data[i++];
} else {
result->data[k++] = list2->data[j++];
}
}
while (i < list1->length) {
result->data[k++] = list1->data[i++];
}
while (j < list2->length) {
result->data[k++] = list2->data[j++];
}
result->length = k;
}
int main() {
SqList list1 = {{1, 3, 5, 7, 9}, 5};
SqList list2 = {{2, 4, 6, 8, 10}, 5};
SqList result = {{0}, 0};
merge(&list1, &list2, &result);
for (int i = 0; i < result.length; i++) {
printf("%d ", result.data[i]);
}
printf("\n");
return 0;
}
```
这个程序定义了一个 SqList 结构体,其中包含一个 int 类型的数组 data 和一个表示数组长度的 length 变量。merge 函数用于将两个顺序表 list1 和 list2 合并成一个新的顺序表 result。最后,程序输出合并后的顺序表。
阅读全文