赞
踩
- /*
- *Copyright(c) 2017,YTU CS
- *All right reserved.
- *作 者:王铭泽.
- *完成日期:2017,9,10.
- *版 本 号: v1.0
- *
- *问题描述: 假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。
- 设计算法,用函数unionList(List LA, List LB, List &LC )函数实现该算法,求一个新的集合C=A∪B,即将两个集合的
- 并集放在线性表LC中。
- *输 入: 无
- *输 出: 两个顺序表并集为一个顺序表的结果。
- */
问题观察分析:这个问题里充分利用了顺序表的 多个算法,让我们体会了自己写算法用算法的过程。
首先解题思路基本上问:1.在基本算法基础上添加一个函数unionList,其作用是完成LA与LB顺序表的并集,其中函数用到的顺序表算法有初始化线性表、求线性表长度、获取单个字符元素、判断元素是否存在、插入元素这几大算法。2.函数内部先进行把A线性表完全传递给C的过程,此过程无需判断重复元素。之后进行B元素传递给C元素的过程,此过程要求判断是否与A中的元素重复。若不重复则添加。
代码如下:
- #include <iostream>
- #include "shunxuList.h"//对头文件的声明,头文件里包含有函数的声明。
- using namespace std;
-
- void unionList(SqList *LA, SqList *LB, SqList *&LC)
- {
- int l,i; //新线性表长度的存放为l。
- ElemType e;
- InitList(LC);
- //先将A传递给新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。