#include <iostream>
using namespace std;
typedef struct node{
int data;
struct node *next;
}Lnode,*Linklist;
Linklist A,B,C;
Linklist init_linklist()
{
Lnode *s,*r,*L;
L=new Lnode;
L->next=NULL;
r=L;
int x;
cout<<"请输入数据,否则输入-1结束数据的输入!\n";
cin>>x;
while(x!=-1){
s=new Lnode;
s->data=x;
r->next=s;
r=s;
cout<<"请输入数据,否则输入-1结束数据输入!\n";
cin>>x;
}
r->next=NULL;
return L;
}
Linklist combine(Lnode *A,Lnode *B){
Lnode *pa,*pb,*s;
C=A;
s=C;
pa=A->next;
pb=B->next;
while(pa&&pb){
if(pa->data<=pb->data){
s->next=pa;
s=pa;
pa=pa->next;
}
else{
s->next=pb;
s=pb;
pb=pb->next;
}
}
if(pa)
s->next=pa;
else
s->next=pb;
return C;
}
void output(Linklist p){
while(p->next){
cout<<p->next->data<<",";
p=p->next;
}
}
void main(){
A=init_linklist();
cout<<"链表A如下所示:"<<endl;
output(A);
cout<<endl;
B=init_linklist();
cout<<"链表A如下所示:"<<endl;
output(B);
cout<<endl;
C=combine(A,B);
cout<<"A和B合并后如下所示:"<<endl;
output(C);
cout<<endl;
}