预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共63页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学集合(jíhé)基本概念colour={red,orange,yellow,green,black,blue,purple,white}name={An,Cao,Liu,Ma,Peng,Wang,zhang}集合中的成员一般是无序的,但在表示它时,常设定集合中的单元素具有线性有序关系,此关系可记作“<”,表示“优先(yōuxiān)于”;整数、字符和字符串都有一个自然线性顺序。指针也可依据其在序列中安排的位置给予一个线性顺序。某些集合保存的是实际数值,某些集合保存的是表示元素是否在集合中的指示信息。要求每个元素在集合中只出现一次,但多种集合允许元素重复出现。virtualSet<T>unionWithconstSet<T>&R)=0;virtualSet<T>intersectWith(constSet<T>&R)=0;virtualSet<T>differenceFrom(constSet<T>&R)=0;virtualboolContains(constTx)=0;virtualboolsubSet(constSet<T>&R)=0;virtualbooloperator==(constSet<T>&R)=0;}6.1.2用位向量(xiàngliàng)实现集合抽象数据类型集合(jíhé)的位向量(bitVector)类的定义#include<assert.h>constintDefaultSize=50;classbitSet{private:unsignedshort*bitVector;intsetSize,vectorSize;public:bitSet(intsz=DefaultSize);~bitSet(){delete[]bitVector;}voidmakeEmpty(){for(inti=0;i<vectorSize;i++)bitVector[i]=0;}intgetMember(constTx);voidputMember(constTx,intv);booladdMember(constTx);booldelMember(constTx);bitSet<T>&operator=(constbitSet<T>&R);bitSet<T>operator+(constbitSet<T>&R);bitSet<T>operator*(constbitSet<T>&R);bitSet<T>operator-(constbitSet<T>&R);boolContains(constTx);boolsubSet(bitSet<T>&R);//判this是否(shìfǒu)R的子集booloperator==(bitSet<T>&R);friendistream&operator>>(istream&in,bitSet<T>&R);friendistream&operator<<(istream&out,bitSet<T>&R);};6.1.3用有序链表实现(shíxiàn)集合的抽象数据类型template<classT>structSetNode{Tdata;SetNode<T>*link;SetNode(constT&x,SetNode<T>*next=NULL):data(x),link(next){};};booloperator==(LinkedSet<T>&R);//判this是否与R相等boolMin(T&x);//返回集合中最小元素(yuánsù)值boolMax(T&x);//返回集合中最大元素(yuánsù)值boolsubSet(LinkedSet<T>&R);//判this是否R的子集}6.2.1并查集(Union-FindSets)在双亲表示中,第i个数组元素代表(dàibiǎo)包含集合元素i的树结点。根结点的双亲为-1,表示集合中的元素个数。在同一棵树上所有结点所代表(dàibiǎo)的集合元素在同一个子集合中。初始时,用构造函数UFSets(s)构造一个森林,每棵树只有一个结点,表示集合中各元素自成一个子集合。用Find(i)寻找集合元素i的根。如果有两个集合元素i和j,Find(i)==Find(j),表明这两个元素在同一个集合中。如果两个集合元素i和j不在同一个集合中,可用Union(i,j)将它们合并到一个集合中。constintDefaultSize=10;classUFSets{public:UFSets(intsz=DefaultSize);~UFSets(){delete[]parent;voidUnion(intRoot1,intRo