问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++集合类 数组实现

发布网友 发布时间:2023-07-05 00:14

我来回答

1个回答

热心网友 时间:2024-08-26 17:50

//看看符合你要求不? 

#include <iostream> 

using namespace std; 

const int Max=100; 

//------------------------------------------------------ 

class Set 

unsigned int len; 

int Elem[Max]; 

public: 

//Constructor 

Set(); 

Set(const Set & SetObj); 

inline bool isFull() const; 

inline bool isEmpty() const; 

inline unsigned int size() const; 

inline int isMemberOf(int nElem) const;//返回位置 

bool addElem(int nElem); 

bool delElem(int nElem); 

Set Union(const Set & SetB); 

Set InSection(const Set & SetB); 

void display() const; 

void Input(); 

}; 

//------------------------------------------------------ 

Set::Set():len(0){} 

//------------------------------------------------------ 

Set::Set(const Set & SetObj) 

for (len = 0;len < SetObj.len;len++) 

Elem[len] = SetObj.Elem[len]; 

//------------------------------------------------------ 

unsigned int Set::size() const 

return len; 

//------------------------------------------------------ 

bool Set::isEmpty() const 

return len == 0; 

//------------------------------------------------------ 

bool Set::isFull() const 

return len == Max; 

//------------------------------------------------------ 

int Set::isMemberOf(int nElem) const 

for (int index = 0; index < len; index++) 

if (Elem[index] == nElem) return index + 1; 

return -1; 

//------------------------------------------------------- 

void Set::display() const 

for (int index = 0; index < len;index++) 

cout<<Elem[index]<<" "; 

cout<<endl; 

//------------------------------------------------------- 

//添加和删除元素操作 

//------------------------------------------------------- 

bool Set::addElem(int nElem) 

if (isFull()) return false; 

else if (isMemberOf(nElem)!= -1){}//Do nothing 

else 

Elem[len++] = nElem; 

return true; 

//-------------------------------------------------------- 

bool Set::delElem(int nElem) 

int loc = isMemberOf(nElem); 

if (isEmpty()||(loc == -1)) return false; 

for (int index = loc; index < len; index++) 

Elem[index - 1] = Elem[index]; 

len--; 

return true; 

//-------------------------------------------------------- 

//求交集(InSection)与并集(Union) 

//-------------------------------------------------------- 

Set Set::Union(const Set & SetB) 

//注意:没有考虑溢出的情况 

Set SetC(SetB); 

for (int index = 0;index < len;index++) 

SetC.addElem(Elem[index]); 

return SetC; 

//------------------------------------------------------------ 

Set Set::InSection(const Set & SetB) 

Set SetC; 

for (int index = 0;index < len;index++) 

for (int indexB = 0;indexB < SetB.len;indexB++) 

if (Elem[index] == SetB.Elem[indexB]) 

SetC.addElem(Elem[index]); 

return SetC; 

//-------------------------------------------------------------- 

void Set::Input() 

int nSize; 

cout<<"请输入集合的大小:\n"; 

cin>>nSize; 

if (nSize > Max) return; 

cout<<"请输入集合元素!\n"; 

for (int i = 0,elem; i < nSize ;i++) 

cin>>elem; 

addElem(elem); 

//--------------------------------------------------------------- 

int main() 

int n; 

Set A,B,C; 

cout<<"A"; 

A.Input(); 

cout<<"B"; 

B.Input(); 

cout<<"A="; 

A.display(); 

cout<<"B="; 

B.display(); 

cout<<"A∩B="; 

C=A.InSection(B); 

C.display(); 

cout<<"A∪B="; 

C=A.Union(B); 

C.display(); 

cout<<"从A中选择要删除的元素:"; 

cin>>n; 

A.delElem(n); 

cout<<"A="; 

A.display(); 

cout<<"从B中选择要删除的元素:"; 

cin>>n; 

B.delElem(n); 

cout<<"B="; 

B.display(); 

cout<<"输入要增加到集合A中的元素:"; 

cin>>n; 

if (!A.addElem(n)) cout<<"增加失败,集合A已满!"; 

else 

cout<<"A="; 

A.display(); 

cout<<"输入要增加到集合B中的元素:"; 

cin>>n; 

if (!B.addElem(n)) cout<<"增加失败,集合B已满!"; 

else 

cout<<"B="; 

B.display(); 

return 0; 

//---------------------------------------------------------------

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
极品飞车18游侠下载的免安装版,点了nfs14没有程序运行但游戏出不来... 极品飞车14咋玩不了了 每次玩好极品飞车后,windows资源管理器进程explorer会一直占30%CPU... 极品飞车14英文版运行单机后一直出现LOADING 还有很多英文提示什么的... 中国银行股份有限公司阜阳阜王路支行怎么样? 顺风递加盟条件及费用 如何去除combobox当中的空白行(页面好像要通过'管理' 可采的补水面贴膜,使用过的姐妹们请谈谈想法 可采草本毛孔紧致面贴膜怎么是黄色的啊 可采面贴膜男士可以用吗 为什么有的演员会被一个角色定型,而有的演员却演什么就像什么? 惠绵保对大病怎么报销 绵阳市居民大病统筹怎么买 大病保险和补充医疗保险的区别 深蓝色西裤配什么颜色西服上衣? 孕妇能吃血皮菜吗? 三国群英传什么兵种克女兵? 大地风云传的txt全集下载地址 初学者学creo好一点还是proe好一些呢? 大家好,小弟想学习Creo, proe ... 方便提供野火论坛邀请码邀请码吗?谢... 深圳东湖教育proe培训怎么样 请问我想开家烟酒店,有没有懂行的知道利润怎么样?(想开一家烟酒店盈利... 烟酒店一年多少利润在上海 一条200元的烟利润有多少 空气过滤器有哪些品牌?都应用在哪里? 男主人公叫罗杰,,在朋友家厨房抱住了朋友的老婆的电影叫什么?_百度... 求绝代妖姬 璇天儿txt For further information, please ___us ___telephone 求鱼跃在花见国语谢谢,不要粤语谢谢 釜山行资源 陈小春接受采访为何惹应采儿生气? 你认为有哪些已经定型的电影演员,为什么? ...个好看的动画片(电影) ,最好能告诉我个免费的网站.谢谢了! 《青丝绾,红颜殇GL》txt下载在线阅读全文,求百度网盘云资源 男女都结婚了,各自有这自己的家庭,但是相爱了,这种关系能持续多久... 男女有平等的生育权吗? 男女双方谁有生育权? 我们都是已婚男女,都有各自的家庭,但是我们居然对彼此产生了好感,并 ... ...2.男女主角都有自己的势力,自身都很强 3.男主只爱过女主 有一个不黏人,独立自主,有自己生活的女朋友体验如何? 梦幻西游普陀怎么玩 《竹子之黑色风暴》最新txt全集下载 女儿的烦恼 粤语歌,有一句读白,我最 亲爱的女儿是什么歌 江苏一对夫妻因女儿长得太漂亮而倍感烦恼,为什么他们不希望女儿太漂亮... 初见遇见香水对标什么牌子 measuring可以主动表被动 英语老师看看,帮帮我,谢谢 23年发布了哪些空军一号 柬埔寨最新入境政策