第三周 项目3 求集合并集
2015-10-12 17:25
218 查看
/* *Copyright (c)2015, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:UnionList.cpp *作 者:苏凯祺 *完成日期:2014年10月12号 *版 本 号:v1.0 *问题描述:假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。 设计算法,用函数unionList(List LA, List LB, List &LC )函数实现该算法,求一个新的集合C=A∪B,即将两个集合的并集放在线性表LC中。 */ #include "list.h" #include <stdio.h> void unionList(SqList *LA, SqList *LB, SqList *&LC) { int lena,i; ElemType e; InitList(LC); for (i=1; i<=ListLength(LA); i++) //将LA的所有元素插入到Lc中 { GetElem(LA,i,e); ListInsert(LC,i,e); } lena=ListLength(LA); //求线性表LA的长度 for (i=1; i<=ListLength(LB); i++) { GetElem(LB,i,e); //取LB中第i个数据元素赋给e if (!LocateElem(LA,e)) //LA中不存在和e相同者,插入到LC中 ListInsert(LC,++lena,e); } } //用main写测试代码 int main() { SqList *sq_a, *sq_b, *sq_c; ElemType a[6]= {5,8,7,2,4,9}; CreateList(sq_a, a, 6); printf("LA: "); DispList(sq_a); ElemType b[6]= {2,3,8,6,0}; CreateList(sq_b, b, 5); printf("LB: "); DispList(sq_b); unionList(sq_a, sq_b, sq_c); printf("LC: "); DispList(sq_c); return 0; }
运行结果:
知识点总结:
建立一个线性表,将两者之间不同的元素放到第三个集合中,将两者相同的元素只放一个。
学习心得:
对于函数之间的应用更加熟练。
相关文章推荐
- 第7周项目2 - 建立链队算法库
- (第四周项目5)猴子选大王
- ubuntu 14.04安装chrome浏览器
- POJ 1007 DNA Sorting
- OVS:网络环路 广播风暴解决方案
- 如何使用 APM 搞定 PHP 应用的性能优化?
- solr系列教程:第二节 新建core
- 第六周项目-自建算法库
- Java快速排序总结
- 如何使一个函数或方法同时返回多个不同类型的值
- 第六周项目五-后缀表达式
- 第七周 项目1-建立顺序环形队列算法库
- 第七周--负数把正数赶出队列
- UISearchController
- lamp主机是什么 vps如何配置lamp主机
- 使用bat文件备份数据库
- 使用bat文件备份数据库
- 使用bat文件备份数据库
- 使用bat文件备份数据库
- B-tree/B+tree/B*tree