Set& set operator =( Set& right)i assert( MaxSize=-right. MaxSize ) for( int i=0; i <MaxSize; i++) bitvector[i= right bitvector[i return * this; Set& set operator + Set& right i assert( MaxSize==right MaxSize ) for( int i=0; i< Max Size; i++) bitvector[i- bitvectorlil right bivector return * this
Set& Set :: operator = ( Set& right ) { assert ( MaxSize == right.MaxSize ); for ( int i =0; i <MaxSize; i++ ) bitVector[i] = right.bitVector[i]; return *this; } Set& Set :: operator + ( Set& right ) { assert ( MaxSize == right.MaxSize ); for ( int i = 0; i < MaxSize; i++ ) bitVector[i] = bitVector[i] || right.bitVector[i]; return *this; }
Set& set operator *( Set right)( assert( MaxSize = right Max Size ) for ( int i=0; i< Max Size; i++) bitvector[i- bitvector] & right bitvector[il; return * this Set& set operator-( Set right)t assert( MaxSize = right Max Size ) for( int i=0; i< Max Size; i++) bitvectori=- bitvector] &&!right bitvector[]; return * this
Set& Set :: operator * ( Set & right ) { assert ( MaxSize == right.MaxSize ); for ( int i = 0; i < MaxSize; i++) bitVector[i] = bitVector[i] && right.bitVector[i]; return *this; } Set& Set :: operator - ( Set & right ) { assert ( MaxSize == right.MaxSize ); for ( int i = 0; i < MaxSize; i++ ) bitVector[i] = bitVector[i] && !right.bitVector[i]; return *this; }
int Set : Contains( const int x)t assert(x>=0 &&x< MaxSize ) return bit vector] int Set operator==( Set right)& assert( MaxSize ==right MaxSize for( int i=0; i< MaxSize; i++) if( bitvector[i!=right. bit] return 0 return 1 int Set: Sub Set (set right)i assert( Max Size ==right. Max Size )
int Set :: Contains( const int x ) { assert ( x >= 0 && x < MaxSize ); return bitVector[x]; } int Set :: operator == ( Set & right ) { assert ( MaxSize == right.MaxSize ); for ( int i = 0; i < MaxSize; i++) if ( bitVector[i] != right.bitVector[i] ) return 0; return 1; } int Set :: SubSet (Set & right ) { assert ( MaxSize == right.MaxSize );
for( int i=0; i< Max Size; i++) if (bivector && right. bitvectorlid return 0; return 1 用有序链表实现集合的抽象数据类型 f→(空集合) last last 一囗·08123-354-的3-2△ 用带表头结点的有序链表表示集合
for ( int i = 0; i < MaxSize; i++) if (bitVector[i] && ! right.bitVector[i]) return 0; return 1; } 用有序链表实现集合的抽象数据类型 用带表头结点的有序链表表示集合
n用有序链表来表示集合时,链表中的每个结 点表示集合的一个成员。 各结点所表示的成员e,e1,…,en在链表中按 升序排列,即0<1<…,<ens 在一个有序链表中寻找一个集合成员时 般不用搜索整个链表,搜索效率可以提高很 多 集合成员可以无限增加。因此,用有序链表 可以表示无穷全集合的子集。 集合的有序链表类的定义 template <class Type> class Setlist;
◼ 用有序链表来表示集合时,链表中的每个结 点表示集合的一个成员。 ◼ 各结点所表示的成员 e0 , e1 , …, en 在链表中按 升序排列,即 e0 < e1 < … < en。 ◼ 在一个有序链表中寻找一个集合成员时,一 般不用搜索整个链表,搜索效率可以提高很 多。 ◼ 集合成员可以无限增加。因此,用有序链表 可以表示无穷全集合的子集。 集合的有序链表类的定义 template <class Type> class SetList;