数据结构,集合,位向量表示

集合与集合的并

int union(BitSet *s0,BitSet * s1,BitSet * s2){

int i;

if(s0->size!=s1->size||s2->size!=s1->size)return 0;

for(i=0;i<s1->size;i++)

s2->array[i]=s0->array[i] | s1->array[i];

return 1;

}



集合与集合的交

int intersection(BitSet *s0,BitSet * s1,BitSet * s2){

int i;

if(s0->size!=s1->size||s2->size!=s1->size)return 0;

for(i=0;i<s1->size;i++)

s2->array[i]=s0->array[i] & s1->array[i];

return 1;

}



集合与集合的差

int difference(BitSet *s0,BitSet * s1,BitSet * s2){

int i;

if(s0->size!=s1->size||s2->size!=s1->size)return 0;

for(i=0;i<s1->size;i++)

s2->array[i]=s0->array[i] & ~ s1->array[i];

return 1;

}



你可能感兴趣的:(数据结构)