#include <iostream>
typedef int ElemType;
using namespace std;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkList;
void CreateListR(LinkList *&L,ElemType a[],int n)
{
LinkList *s,*r;
int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void DispList(LinkList *L)
{
LinkList *p=L->next;
if(p==NULL)
cout<<"空集";
else
{
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
}
}
void sort(LinkList *&L)
{
LinkList *p=L->next,*q,*r;
if(p!=NULL)
{
r=p->next;
p->next=NULL;
p=r;
while(p!=NULL)
{
r=p->next;
q=L;
while(q->next!=NULL && q->next->data<p->data)
q=q->next;
p->next=q->next;
q->next=p;
p=r;
}
}
}
void Diffence(LinkList *A,LinkList *B,LinkList *&C) //求两个集合的差//
{
LinkList *pa=A->next,*pb=B->next,*s,*r;
C=(LinkList *)malloc(sizeof(LinkList));
C->next=NULL;
r=C;
while(pa!=NULL && pb!=NULL)
{
if(pa->data<pb->data)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pa->data;
s->next=NULL;
r->next=s;
r=s;
pa=pa->next;
}
else if(pa->data>pb->data)
pb=pb->next;
else
{
pa=pa->next;
pb=pb->next;
}
}
while(pa!=NULL) //将A余下的结点复制后链到C中//
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pa->data;
s->next=NULL;
r->next=s;
r=s;
pa=pa->next;
}
r->next=NULL;
}
void Union(LinkList *A,LinkList *B,LinkList *&C)
{
LinkList *pa=A->next,*pb=B->next,*s,*r;
C=(LinkList *)malloc(sizeof(LinkList));
C->next=NULL;
r=C;
while(pa!=NULL && pb!=NULL)
{
if(pa->data!=pb->data)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pa->data;
s->next=NULL;
r->next=s;
r=s;
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pb->data;
s->next=NULL;
r->next=s;
r=s;
pa=pa->next;
pb=pb->next;
}
else
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pa->data;
s->next=NULL;
r->next=s;
r=s;
pa=pa->next;
pb=pb->next;
}
}
r->next=NULL;
}
void Intersection(LinkList *A,LinkList *B,LinkList *&C) //求两个集合的交//
{
LinkList *pa=A->next,*pb=B->next,*s,*r;
C=(LinkList *)malloc(sizeof(LinkList));
C->next=NULL;
r=C;
while(pa!=NULL && pb!=NULL)
{
if(pa->data<pb->data)
pa=pa->next;
else if(pa->data>pb->data)
pb=pb->next;
else
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=pa->data;
s->next=NULL;
r->next=s;
r=s;
pa=pa->next;
pb=pb->next;
}
r->next=NULL;
}
}
int main()
{
int a[50],b[50],n;
LinkList *A,*B,*C;
cout<<"请输入一个数";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<i<<"个数a"<<"["<<i<<"]";
cin>>a[i];
cout<<"请输入第"<<i<<"个数b"<<"["<<i<<"]";
cin>>b[i];
}
CreateListR(A,a,n);
CreateListR(B,b,n);
sort(A);
sort(B);
Diffence(A,B,C);
cout<<"A-B=";
DispList(C);
cout<<endl;
Union(A,B,C);
cout<<"A+B=";
DispList(C);
cout<<endl;
Intersection(A,B,C);
cout<<"A交B=";
DispList(C);
cout<<endl;
system("pause");
}

邓凌佳
- 粉丝: 96
最新资源
- 议员提议案vs国民大数据拟对奢华婚礼征税?.docx
- 区块链商业应用起步.docx
- 企业管理信息系统网络设计及实施.docx
- 工业自动化仪表及过程控制(单回路调节系统).ppt
- 大数据环境下档案信息资源整合的SWOTT分析.docx
- 配电自动化系统实用化运维技术探析.docx
- 宿舍管理系统--软件设计说明书.doc
- 测试### 教育技术基于Web的虚拟仿真实验平台系统需求规格说明书:高校实验教学综合管理系统设计
- 使用Python构建高效ETL管道
- Spring-Cloud重新定义Java云原生架构.pdf
- 电力电子基于滑模变结构的双向DC-DC变换器控制策略研究:实现高动态性能与抗干扰能力的系统设计(论文复现含详细代码及解释)
- 区块链与可信系统:第五届BlockSys国际会议论文集
- 通信技术基于混沌伪正交成型滤波器的高速率隐蔽通信系统设计与性能分析研究(论文复现含详细代码及解释)
- 【新能源技术】基于混合电解槽制氢系统的功率分配技术:光伏电解水制氢系统的优化设计与仿真验证(论文复现含详细代码及解释)
- 【光伏发电技术】基于混合算法的光伏多峰值MPPT优化研究:快速定位与精确跟踪的智能控制策略设计(论文复现含详细代码及解释)
- CMIS与Apache Chemistry实战指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



评论0