#include "SeqList.h"
using namespace std;
//并运算
void unionSL(SeqList<int> &LA,SeqList<int> &LB)
{
int m = LA.Length();
int n = LB.Length();
for (int i = 1; i <= n; ++i)
{
int ival;
LB.getData(i,ival); //将数据从LB表中取出
int searchVal = LA.Search(ival);
if (searchVal == 0) //如果该元素并不存在于LA表中
{
LA.Insert(m,ival); //则插入之
++ m;
}
}
}
//交运算
void intersectionSL(SeqList<int> &LA,SeqList<int> &LB)
{
int m = LA.Length();
int i = 1;
while (i <= m)
{
int ival;
LA.getData(i,ival); //将数据从LA中取出
int searchVal = LB.Search(ival);
if (searchVal == 0) //如果发现该数据并不存在于LB中
{
LA.Remove(i,ival); //则将其删除
-- m; //表长缩短[勿忘!]
}
else
{
++ i;
}
}
}
//测试程序
int main()
{
freopen("input","r",stdin);
SeqList<int> L1,L2;
L1.input();
L2.input();
unionSL(L1,L2);
L1.output();
cout << endl;
SeqList<int> L3;
L3.input();
intersectionSL(L3,L2);
L3.output();
}
/**测试数据 *5 1 2 3 4 5 6 *4 11 2 3 4 9 * *4 11 12 13 4 19 */
/*输出结果(由于使用了重定向,所以输入的数据不会显示在屏幕上)*/
C++数据结构与算法_2_线性表 --顺序表的应用示例,布布扣,bubuko.com
原文地址:http://blog.csdn.net/zjf280441589/article/details/37899789