永发信息网

数据结构  集合的差运算  头文件也要

答案:1  悬赏:10  手机版
解决时间 2021-07-19 08:07
  • 提问者网友:战皆罪
  • 2021-07-18 22:05
集合的差运算 用链表做
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-07-18 23:27

#include<stdio.h>
#include<stdlib.h>
struct node
{
int x;
struct node *next;
};
typedef struct node node;
typedef node *index;
int n1,n2;
/////////////////////////
index fun(int n)
{
index head,q,p;
int i;
if (n==0) return NULL;
else if (n>=1)
{
printf("输入元素集:");
p=(index)malloc(sizeof(node));
scanf("%d",&p->x);
head=q=p;
if (n==1) {p->next=NULL;return head;}
}
for (i=1;i<n;i++)
{
p=(index)malloc(sizeof(node));
scanf("%d",&p->x);
q->next=p;
q=p;
}
q->next=NULL;
return head;
}
//////////////////////
void f(index pa,index pb)
{
int bol,i=0;
index t,head;
if (n1>n2);
else
{
t=pa;
pa=pb;
pb=t;
}
head=pb;
while (pa!=NULL)
{
bol=1;
pb=head;
i++;
while (pb!=NULL)
{
if (pa->x!=pb->x) bol=0;
else {bol=1;break;}
pb=pb->next;
}
if (bol==0) printf("集合之差元素有:%d\n",pa->x);
pa=pa->next;
}
printf("\n程序结束!\n");
}
void main()
{
node a,b;
index pa,pb;
printf("请输入集合a中元素个数:");
scanf("%d",&n1);
pa=fun(n1);
printf("请输入集合b中元素个数:");
scanf("%d",&n2);
pb=fun(n2);
if (pa!=NULL && pb!=NULL) f(pa,pb);
else printf("元素某个为空!\n");
printf("\n");
}


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯