📄 04071402226.cpp
字号:
//另辟空间求链表A和链表B的交集,且同一链表中不含有相同的元素
#include<iostream.h>
typedef int elemtype;
#include"04071402llist.h"
void list_intersect(llist A,llist B,llist &C) //算法的具体实现
{
llist pa,pb,pc,s;
C=new Lnode;
pa=A->next;pb=B->next;pc=C;
while(pa&&pb)
{
if(pa->data<pb->data)
pa=pa->next;
else if(pa->data>pb->data)
pb=pb->next;
else
{
s=new Lnode;
s->data=pa->data;
pc->next=s;
pc=s;
pa=pa->next;
pb=pb->next;
}
}
pc->next=NULL;
delete A,B;
}
void main() //主函数
{
llist A,B,C;
elemtype *a,*b;
int m,n;
cout<<"请输入链表存储数据的个数:"<<endl;
cin>>m;
a=new elemtype[m];
cout<<"请依次输入链表所存储的元素:"<<endl;
for(int i=0;i<m;i++)
cin>>a[i];
listcreat(A,m,a); //调用构造链表子函数
cout<<"请输入链表存储数据的个数:"<<endl;
cin>>n;
b=new elemtype[n];
cout<<"请依次输入链表所存储的元素:"<<endl;
for(i=0;i<n;i++)
cin>>b[i];
listcreat(B,n,b); //调用构造链表子函数
list_intersect(A,B,C); //调用实现子函数
if(C->next)
{
cout<<"两链表的交集为:"<<endl;
listtraverse(C);
}
else
cout<<"两链表的交集为空集!";
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -