📄 链表.txt
字号:
#include<stdio.h>
#include<malloc.h>
#include<iostream.h>
typedef int elemtype;
typedef struct Lnode
{
elemtype data;
struct Lnode *next;
}lnode,*linklist;
linklist creastlist(linklist head)
{
elemtype temp;
linklist p;
cout<<"请输入结点值(输入0结束)"<<endl;
cin>>temp;
while(temp!=0)
{
p=new lnode;
p->data=temp;
p->next=head->next;
head->next=p;
cin>>temp;
}
}
linklist merglist(linklist &La,linklist &Lb)
{
linklist pa,pb,pc,Lc;
pa=La->next;
Lc=pc=La;
while(pa)
{
pb=Lb->next;
while(pb){
if(pa->data==pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
pb=pb->next;
}
if(!pb)
pa=pa->next;
}
pc->next=NULL;
delete(Lb);
return Lc;
}
elemtype locateelem(linklist La,elemtype e)
{
linklist pa;
pa=La->next;
while(pa)
{
if(pa->data==e)
return 1;
else
pa=pa->next;
}
return 0;
}
linklist bingji(linklist La,linklist Lb)
{
linklist pa,pb,s;
pa=La->next;
pb=Lb->next;
while(pb)
{
if(!locateelem(La,pb->data))
{
s=new lnode;
s->data=pb->data;
s->next=La->next;;
La->next=s;
}
pb=pb->next;
}
return La;
}
linklist chaji(linklist La,linklist Lb)
{
linklist pa,pb,q;
pb=Lb->next;
while(pb)
{
if(locateelem(La,pb->data))
{
pa=La->next;
while(pa)
{
if(pa->data!=pb->data)
{
q=pa;
pa=pa->next;
}
else
{
q->next=pa->next;
delete pa;
break;
}
}
}
pb=pb->next;
}
return La;
}
void print(linklist head)
{
linklist p;
p=head->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
}
char Menu()
{
char ch;
cout<<endl<<"----------集合----------"<<endl;
cout<<"1、求集合的交集"<<endl;
cout<<"2、求集合的并集"<<endl;
cout<<"3、求集合的差集"<<endl;
cout<<"0、退出系统"<<endl<<endl;
cout<<"输入你的选择"<<endl;
cin>>ch;
return ch;
}
int main()
{
linklist La,Lb,Ld;
char ch;
ch=Menu();
while(1)
{
switch(ch)
{
case'1':
La=new lnode;
Lb=new lnode;
La->next=NULL;
Lb->next=NULL;
creastlist(La);
creastlist(Lb);
Ld=merglist(La,Lb);
print(Ld);
break;
case'2':
La=new lnode;
Lb=new lnode;
La->next=NULL;
Lb->next=NULL;
creastlist(La);
creastlist(Lb);
Ld=bingji(La,Lb);
print(Ld);
break;
case'3':
La=new lnode;
Lb=new lnode;
La->next=NULL;
Lb->next=NULL;
creastlist(La);
creastlist(Lb);
Ld=chaji(La,Lb);
print(Ld);
break;
case'0':
exit(0);
break;
default:
cout<<"输入错误,请再输入一遍:"<<endl;
break;
}
cout<<"输入你的选择"<<endl;
cin>>ch;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -