线性表的两个非递减集合求并集完整代码
时间: 2024-03-07 22:24:26 浏览: 36
以下是使用 C++ 实现的线性表的两个非递减集合求并集的完整代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> merge(vector<int> &a, vector<int> &b) {
vector<int> c;
int i = 0, j = 0;
while (i < a.size() && j < b.size()) {
if (a[i] <= b[j]) {
c.push_back(a[i]);
i++;
} else {
c.push_back(b[j]);
j++;
}
}
while (i < a.size()) {
c.push_back(a[i]);
i++;
}
while (j < b.size()) {
c.push_back(b[j]);
j++;
}
return c;
}
int main() {
vector<int> a = {1, 3, 5, 7, 9};
vector<int> b = {2, 4, 6, 8, 10};
vector<int> c = merge(a, b);
for (int i = 0; i < c.size(); i++) {
cout << c[i] << " ";
}
cout << endl;
return 0;
}
```
这里使用了 STL 中的 vector 容器,可以方便地进行动态数组操作。`merge` 函数实现了将两个非递减集合求并集的功能,通过双指针遍历两个集合,依次比较元素大小,将较小的元素加入合并后的集合中。最后,输出合并后的集合元素。