C++合并两个线性表代码
时间: 2023-07-11 17:06:47 浏览: 103
Visual C++源代码 133 如何合并显示两个数据表中的数据
以下是一个简单的 C++ 合并两个线性表的代码示例:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 线性表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储线性表元素的数组
int length; // 线性表的长度
} SqList; // 顺序表
void MergeList(SqList &L1, SqList L2) {
int i = 0, j = 0, k = 0;
int temp[MAXSIZE]; // 临时存储合并后的线性表
while (i < L1.length && j < L2.length) {
if (L1.data[i] <= L2.data[j]) {
temp[k++] = L1.data[i++];
} else {
temp[k++] = L2.data[j++];
}
}
while (i < L1.length) {
temp[k++] = L1.data[i++];
}
while (j < L2.length) {
temp[k++] = L2.data[j++];
}
L1.length = k;
for (int m = 0; m < L1.length; m++) {
L1.data[m] = temp[m];
}
}
int main() {
SqList L1 = {{1, 3, 5, 7, 9}, 5};
SqList L2 = {{2, 4, 6, 8, 10}, 5};
MergeList(L1, L2);
for (int i = 0; i < L1.length; i++) {
cout << L1.data[i] << " ";
}
cout << endl;
return 0;
}
```
该程序中,我们使用了一个结构体 `SqList` 来表示顺序表,其中包含一个数组 `data` 和一个整数变量 `length` 表示顺序表的长度。`MergeList` 函数用于合并两个顺序表 `L1` 和 `L2`,最终将结果存储在第一个顺序表 `L1` 中。主函数中我们定义了两个顺序表 L1 和 L2,将它们传递给 MergeList 函数进行合并,并输出合并后的结果。
需要注意的是,在实际应用中,线性表往往会涉及到更加复杂的操作,如插入、删除、查找等,因此需要根据实际需求进行修改和完善。
阅读全文