#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