实验内容 1.已知有两个按元素值递增有序的顺序表 B ,设计一个算法将表 A 和表 B 的全部元素归并一个按元素值非递减 序的顺序表 C 。 要求: 从键盘输入顺序表 A 和 B 的各元素,编程实上述算法,输出顺序表 A 、顺序表 B 和顺序表(所有元素值。
时间: 2024-05-31 19:07:03 浏览: 98
算法描述:
1. 从键盘读入顺序表 A 和 B 的元素,分别存储在数组 a 和 b 中;
2. 定义一个指向顺序表 C 的指针 p,初始化为 NULL;
3. 定义两个指向顺序表 A 和 B 的指针 i 和 j,初始值分别为 0;
4. 从 i=0 和 j=0 开始循环,比较 a[i] 和 b[j] 的大小,将较小的值存入顺序表 C 中,并将 i 或 j 加 1;
5. 当 i 或 j 等于其表长时,退出循环;
6. 如果 i 等于表 A 的表长,将表 B 中剩余的元素依次存入顺序表 C 中;
7. 如果 j 等于表 B 的表长,将表 A 中剩余的元素依次存入顺序表 C 中;
8. 输出顺序表 A、B 和 C 的所有元素。
C++ 代码实现:
#include<iostream>
using namespace std;
const int MAXSIZE = 100;
// 定义顺序表结构体
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
// 归并两个有序顺序表
void Merge(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;
}
int main() {
SqList A, B, C;
// 从键盘读入顺序表 A 的元素
cout << "请输入顺序表 A 的长度:";
cin >> A.length;
cout << "请输入顺序表 A 的元素:";
for (int i = 0; i < A.length; i++) {
cin >> A.data[i];
}
// 从键盘读入顺序表 B 的元素
cout << "请输入顺序表 B 的长度:";
cin >> B.length;
cout << "请输入顺序表 B 的元素:";
for (int i = 0; i < B.length; i++) {
cin >> B.data[i];
}
// 归并两个有序顺序表
Merge(A, B, C);
// 输出顺序表 A、B 和 C 的所有元素
cout << "顺序表 A:";
for (int i = 0; i < A.length; i++) {
cout << A.data[i] << " ";
}
cout << endl;
cout << "顺序表 B:";
for (int i = 0; i < B.length; i++) {
cout << B.data[i] << " ";
}
cout << endl;
cout << "顺序表 C:";
for (int i = 0; i < C.length; i++) {
cout << C.data[i] << " ";
}
cout << endl;
return 0;
}
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![c](https://img-home.csdnimg.cn/images/20250102104920.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)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)