C++合并两个线性表L1,L2,并存储在L3中
时间: 2023-08-06 13:07:42 浏览: 54
假设线性表L1和L2的长度分别为n1和n2,那么合并后的线性表L3的长度为n1+n2。下面是C++代码实现:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 线性表最大长度
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
// 合并两个有序的线性表L1和L2,存储在L3中
void MergeList(SqList L1, SqList L2, SqList &L3) {
int i = 0, j = 0, k = 0;
while (i < L1.length && j < L2.length) {
if (L1.data[i] <= L2.data[j]) {
L3.data[k++] = L1.data[i++];
} else {
L3.data[k++] = L2.data[j++];
}
}
while (i < L1.length) {
L3.data[k++] = L1.data[i++];
}
while (j < L2.length) {
L3.data[k++] = L2.data[j++];
}
L3.length = k;
}
int main() {
SqList L1 = {{1, 3, 5, 7}, 4};
SqList L2 = {{2, 4, 6, 8}, 4};
SqList L3 = {{}, 0};
MergeList(L1, L2, L3);
for (int i = 0; i < L3.length; i++) {
cout << L3.data[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,我们通过定义结构体SqList来表示线性表,其中data数组用于存储线性表中的元素,length表示线性表的长度。MergeList函数用于合并两个有序的线性表L1和L2,存储在L3中。在函数中,我们使用三个变量i、j、k分别表示遍历L1、L2、L3的下标,通过比较L1和L2中元素的大小,将较小的元素插入到L3中,最终得到合并后的有序线性表L3。