已知有两个按元素值递增有序的顺序表A和B,设计一个算法将表A和表B的全部元素归并为一个按元素值递增有序的顺序表C。要求:从键盘输入顺序表A和B的各元素,输出顺序表C 的所有元素值。
时间: 2024-05-07 09:15:26 浏览: 19
算法步骤如下:
1. 从键盘输入顺序表A和B的长度和各元素,存储在数组a和数组b中。
2. 设定指针i和j,分别初始化为0,指向数组a和数组b的第一个元素。
3. 创建一个空的顺序表C,用于存储归并后的元素。
4. 循环比较数组a和数组b中指针所指向的元素,将较小的元素插入到顺序表C中,并将指针向后移动一位,直到其中一个数组的元素全部插入到顺序表C中。
5. 将另一个数组中剩余的元素依次插入到顺序表C中。
6. 输出顺序表C的所有元素值。
算法实现如下:
```
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void InitList(SqList *L) {
L->length = 0;
}
void InputList(SqList *L) {
printf("请输入顺序表的长度:");
scanf("%d", &L->length);
printf("请输入顺序表的元素:");
for (int i = 0; i < L->length; i++) {
scanf("%d", &L->data[i]);
}
}
void MergeList(SqList A, SqList B, SqList *C) {
int i = 0, j = 0, k = 0;
while (i < A.length && j < B.length) {
if (A.data[i] <= B.data[j]) {
C->data[k++] = A.data[i++];
} else {
C->data[k++] = B.data[j++];
}
}
while (i < A.length) {
C->data[k++] = A.data[i++];
}
while (j < B.length) {
C->data[k++] = B.data[j++];
}
C->length = k;
}
void OutputList(SqList L) {
printf("归并后的顺序表为:");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList A, B, C;
InitList(&A);
InitList(&B);
InputList(&A);
InputList(&B);
InitList(&C);
MergeList(A, B, &C);
OutputList(C);
return 0;
}
```
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)