设计一个集合类,用来处理整型数

[复制链接]
查看11 | 回复0 | 2007-12-27 00:59:28 | 显示全部楼层 |阅读模式
//设计一个集合类,用来处理整型数,要求具有如下功能://(1) 具有为集合增加元素的功能。//(2) 具有处理集合的交集、并集的功能,并用 "+" 表示并集, "*" 表示交集。//(3) 要求用链表来存储集合的元素。//(4) 编写一个main()函数,测试你的集合类的各种功能。#include//form the datastruct Data{ long num; Data *next;};//the set classclass Gather{
public:Gather(int =5);//~Gather();void form(int);void del();void setGather();void print();void add(int);Data *getptr(){return ptr;}Gather& operator=(Gather &);Gather& operator+(Gather &);Gather& operator*(Gather &); private:int LEN;Data *ptr;};Gather inside;/////////////////////////////////////////////////Gather::Gather(int a){form(a);}//////////////////////////////////void Gather::form(int a){
LEN=a; Data *p; for (int i=0;inext=new Data; p=p->next;} } p->next=NULL;}////////////////////////////////////Gather::~Gather(){del();}//////////////////////////////////void Gather::del(){ Data *p; Data *q; p=ptr; for(int i=0;inext;delete q; } LEN=0;}//////////////////////////////////void Gather::setGather(){ Data *p; p=ptr; for (int i=0;ip->num;p=p->next; }}//////////////////////////////////void Gather::print(){ if (LEN==0)coutnumnext;if (i!=0&&i%10==0) coutnum==t){ y=false; break;}
if(i!=LEN-1)p=p->next; } if(y){p->next=new Data;p=p->next;p->num=t;p->next=NULL;LEN++; }}//////////////////////////////////Gather& Gather::operator =(Gather &x){ if (ptr==x.ptr) return *this; else {del();form(x.LEN);Data *p,*q;p=ptr;q=x.ptr;for(int i=0;inum=q->num; p=p->next; q=q->next;}return *this; }}//////////////////////////////////Gather& Gather::operator +(Gather &x){ inside.del(); inside.form(LEN); Data *q; Data *p; q=ptr; p=inside.getptr(); for(int i=0;inum=q->num;p=p->next;q=q->next; } q=x.ptr;
for(i=0;inum);q=q->next; } return inside;}//////////////////////////////////Gather& Gather::operator *(Gather &x){ int z=0; long g[100]; bool y=true; Data *p; Data *q; p=ptr; q=x.ptr;for(int i=0;inum==q->num){
for(int t=0;tnum==g[t]){
y=false;
break;
}
if(y){
g[z]=p->num;
z++;
break;
}
y=true;
break; } else q=q->next;}p=p->next; } inside.del(); inside.form(z); Data *pre; pre=inside.getptr();for (i=0;inum=g;pre=pre->next; }return inside;}//the mainint main(){ Gather x(6); Gather y; Gather result; cout>a; x.add(a); cout<<"Now x is : "; x.print(); cout<<endl;inside.del(); result.del(); x.del(); y.del(); return 0;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行