设计一个算法求集合A和集合B的并集,用线性表存储结构实现
时间: 2024-05-12 20:13:16 浏览: 119
线性表的存储结构的实现
假设集合A和集合B分别用顺序表A和顺序表B存储,下面是求并集的算法实现:
1. 新建一个顺序表C,用来存储A和B的并集。
2. 将顺序表A中的元素逐个复制到C中。
3. 依次扫描顺序表B中的元素,若该元素不在C中,则将该元素复制到C的末尾。
4. 返回顺序表C。
以下是算法的具体实现,假设元素类型为int:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> unionSet(vector<int> A, vector<int> B) {
vector<int> C = A;
for (int i = 0; i < B.size(); i++) {
bool isInC = false;
for (int j = 0; j < C.size(); j++) {
if (B[i] == C[j]) {
isInC = true;
break;
}
}
if (!isInC) {
C.push_back(B[i]);
}
}
return C;
}
int main() {
vector<int> A = {1, 2, 3, 4};
vector<int> B = {3, 4, 5, 6};
vector<int> C = unionSet(A, B);
for (int i = 0; i < C.size(); i++) {
cout << C[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:1 2 3 4 5 6
阅读全文