c语言集合使用方法,集合操作 C语言实现

#include

#include

//交集(src/des中元素必须唯一)

int JiaoJi(int *src, int slen,  int *des, int dlen){

int i = 0, j = 0, t = 0;

for(i=0;i

for(j=0;j

if(src[i]==des[j]){

src[t]=des[j];

t++;

break;

}

}

}

return t;

}

//差集 (src/des中元素必须唯一)

int ChaJi(int *src, int slen,  int *des,  int dlen){

int i = 0, j = 0, t = 0;

for(i = 0; i < slen; i++){

for(j = 0; j < dlen ;j++){

if( src[i] == des[j]) break;

}

if(j == dlen){

src[t] = src[i];

t++;

}

}

return t;

}

//并集(src/des中元素必须唯一)

int BingJi(int *src, int slen,  int *des,  int dlen){

int i = 0, j = 0, t = slen;

for(i = 0; i < dlen; i++)

{

for(j = 0; j < t ;j++){

if( des[i] == src[j]) break;

}

if(j == t){

src[t] = des[i];

t++;

}

}

return t;

}

//子集(src/des中元素必须唯一)成功:非0, 失败:0

int IsZiJi(int *src, int slen,  int *des,  int dlen){

int i = 0, j = 0, t = 0;

for(i=0;i

for(j=0;j

if(src[i]==des[j]){

src[t]=des[j];

t++;

break;

}

}

}

if( t == dlen) return t;

return 0;

}

//和集(src/des中元素不必唯一)

int AddJi(int *src, int slen,  int *des,  int dlen){

int i = 0, j = 0, t = slen;

for( j = t; j < dlen; j++){

src[t] = des[j];

t++;

}

return t;

}

//减集(src/des中元素不必唯一)

int SubJi(int *src, int slen,  int *des,  int dlen){

int i = 0, j = 0;

for(i = 0; i < dlen; i++){

int t = 0, f = 0;

for(j = 0; j < slen;j++){

if(f == 1 ||  src[j] != des[i]){

src[t] = src[j];

t++;

}else{

f = 1;

}

}

slen = t;

}

return slen;

}

//约集(src/des中元素不必唯一)

//des哪些元素包含在src中(src/des元素可重复)

int YueJi(int *src, int slen,  int *des, int dlen){

int i = 0, j = 0, t = 0;

for(i=0;i

for(j=t;j

if(des[i]==src[j]){

int tmp =  src[t];

src[t] = src[j];

src[j] = tmp;

t++;

break;

}

}

}

return t;

}

//去重(src中元素不必唯一)

int QuChong(int *src,int slen){

int i = 0,j = 0,t = 0;

for(i=1,t= 1; i

for(j=0; j

if(src[j] == src[i])break;

}

if(j == t){

src[t]=src[i];

t++;

}

}

return t;

}

int main(){

int a[3] = {3,  4, 5 };

int b[8] = {1,  5 , 3, 3, 3, 15};

int len = YueJi(a, 3, b, 6);

printf("len[%d] ", len );

for(int i = 0; i < len; i++){

printf("%d ", a[i] );

}

return 0;

}