整数集合运算符号,求助

小算法(27)
/*在以单链表表示的正整数的有序集合上,实现集合的并、交和差运算。
基本要求:
(1)用单链表存储集合中的数据;
(2)对单链表中的数据进行排序。
#include&stdio.h&
#include&stdlib.h&
#include&time.h&
typedef struct LNode{
struct LNode *
}LNode,*LinkL
void CreateLinkList(LinkList &L,int n){//尾插法建立单向链表,头结点不用
LinkList cur,pN
srand(time(0));
L=cur=NULL;
for(i=0;i&=n;i++){
pNew=(LinkList)malloc(sizeof(LNode));
pNew-&data=rand()%90+10;
//产生出随机数作为集合内元素
L-&data=-1;
cur-&next=pN
cur-&next=NULL;
int QuickSort(LinkList &L,LinkList tail){
//单链表递归快速排序
LinkList mid,p,q,m;
if (L-&next==tail || L-&next-&next==tail)
return -1;
while (m!=tail){
if (m-&data&key)
p=p-&next=m;
q=q-&next=m;
QuickSort(L,mid);
QuickSort(mid,tail);
void Print(LinkList L){//
printf(&%d\t&,p-&data);
printf(&\n&);
void AddList(LinkList La,LinkList Lb){
//求并集并输出
LinkList Lc;
LinkList cur,la,lb,
Lc=cur=(LinkList)malloc(sizeof(LNode));
while(la && lb){
if(la-&data&lb-&data){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
else if(la-&data==lb-&data){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=lb-&
cur-&next=
while(la){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
while(lb){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=lb-&
cur-&next=
cur-&next=NULL;
Print(Lc);
void JiaoList(LinkList La,LinkList Lb){
LinkList Lc,la,lb,ln,
Lc=cur=(LinkList)malloc(sizeof(LNode));
while(la && lb){
if(la-&data&lb-&data)
else if(la-&data==lb-&data){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
cur-&next=NULL;
Print(Lc);
void ChaList(LinkList La,LinkList Lb){
LinkList Lc,la,lb,cur,
Lc=cur=(LinkList)malloc(sizeof(LNode));
while(la && lb){
if(la-&data&lb-&data){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
else if(la-&data==lb-&data){
while(la){
ln=(LinkList)malloc(sizeof(LNode));
ln-&data=la-&
cur-&next=
cur-&next=NULL;
Print(Lc);
int main(){
LinkList La,Lb;
printf(&请输入第一个集合的元素数目\n&);
scanf(&%d&,&na);
CreateLinkList(La,na);
printf(&请输入第二个集合的元素数目\n&);
scanf(&%d&,&nb);
CreateLinkList(Lb,nb);
QuickSort(La,NULL);
QuickSort(Lb,NULL);
Print(La);
Print(Lb);
printf(&并集为:\n&);
AddList(La,Lb);
printf(&交集为:\n&);
JiaoList(La,Lb);
printf(&差集为:\n&);
ChaList(La,Lb);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8156次
排名:千里之外
原创:31篇
(3)(1)(4)(7)(1)(2)(4)(5)(4)蓝桥杯(22)
集合运算&(vip)
  给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。
输入格式
  第一行为一个整数n,表示集合A中的元素个数。
  第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
  第三行为一个整数m,表示集合B中的元素个数。
  第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
  集合中的所有元素均为int范围内的整数,n、m&=1000。
输出格式
  第一行按从小到大的顺序输出A、B交集中的所有元素。
  第二行按从小到大的顺序输出A、B并集中的所有元素。
  第三行按从小到大的顺序输出B在A中的余集中的所有元素。
2 4 6 8 10
1 2 3 4 5 6 8 10
1 2 3 4 5 6 7
#include&iostream&
int main()
int n,m,x,A=0,B=0,jiao=0,maxx=-1;
for(int i=0;i&n;i++)
maxx=max(maxx,x);
A+=(1&&x);
for(int i=0;i&m;i++)
maxx=max(maxx,x);
B+=(1&&x);
int rst=A&B;
for(int i=0;i&=i++)
if(rst&(1&&i))
cout&&i&&& &;
for(int i=0;i&=i++)
if(rst&(1&&i))
cout&&i&&& &;
for(int i=0;i&=i++)
if((rst&(1&&i))==0&&A&(1&&i))
cout&&i&&& &;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16154次
积分:1717
积分:1717
排名:千里之外
原创:139篇
转载:44篇
(2)(70)(20)(11)(3)(6)(3)(5)(14)(9)(31)(3)(9)

我要回帖

更多关于 集合的运算 的文章

 

随机推荐