题目:编写完成集合抽象数据类型定义及其运算,要求具有并、交、差运算(用C++)。
1.需求分析
用C++语言,定义一个集合抽象数据类型,完成并、交、差的运算。
2.概要设计
ADTSetOperater is
{
数据:
两个SeqList型的对象
操作:
add():两个集合的相加
输入:两个集合
功能:两个集合内元素的合并
输出:加和结果
union():两个集合的合并
输入:两个集合及其各自的数据元素
功能:属于A或属于B的元素,组成的集合。A∪B={x|x∈A,或x∈B}
输出:并集
inserter():两个集合的交集
输入:两个集合及其各自的数据元素
功能:属于A且属于B的元素,组成的集合。A∩B={x|x∈A,且x∈B}
输出:交集
difference():两个集合的差集
输入:两个集合及其各自的数据元素
功能:属于A而不属于B的元素,组成的集合。A\B={x│x∈A,x不属于B}
输出:差集
};
3.详细设计
用顺序表实现。
intListSize()const;//元素的个数
intListEmpty()const;//表为空,返回;否则,返回
int Find(DataType&item)const;//寻找item在表中的位置
DataType GetData(intpos)const;//返回位置pos的元素
void Insert(constDataType &item,intpos);//在位置pos插入元素item
DataType Delete(constint pos);//删除位置pos上的元素
void ClearList();//把表清空
void Print();//打印出顺序表中的元素
int Exist(DataType&item)const;//判断顺序表中是否存在item
void DeleteSame();//删除顺序表中重复的元素
SeqListAdd(SeqList A,SeqList B); //两个集合的相加
SeqListUnion(SeqList A,SeqList B) //两个集合的并集
SeqListInserter(SeqListA,SeqList B) //两个集合的交集
SeqListdifference(SeqListA,SeqList B) //两个集合的差集
4.调试分析
顺序表的长度只能为整数
运算结果中存在重复的元素,需要去除重复
5.使用说明
运行程序,根据提示输入即可。
只能处理两个字符串的并集、交集、差集
6.测试结果
测试1组:
请输入集合A的长度:10
请输入集合A中的元素(char型)shenhuawei
请输入集合B的长度:10
请输入集合B的元素(char型)xuehuiping
相加后,元素为:s h e n h u a w e i x u e h u i p i n g
并集,元素为:s h e n u a w i x u p g
交集,元素为:h e n u i
差集,元素为:s a w x p g
测试2组:
请输入集合A的长度:5
请输入集合A中的元素(char型)2w,v0
请输入集合B的长度:8
请输入集合B的元素(char型),d'e/w0;
相加后,元素为:2 w , v 0 , d ' e / w 0 ;
并集,元素为:2 w , v 0 d ' e / ;
交集,元素为:w , 0
差集,元素为:2 v d ' e / ;
7.附录
源程序文件清单。