
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct Node{ 4 int data; 5 Node*next; 6 }Node,*LinkList; 7 InitLinkList(LinkList*L) 8 { 9 *L=(LinkList)malloc(sizeof(Node)); 10 (*L)->next=NULL; 11 } 12 CreateLinkList(LinkList L) 13 { 14 int length,e; 15 Node*t,*q=L; 16 scanf("%d",&length); 17 for(int i=1;i<=length;i++) 18 { 19 scanf("%d",&e); 20 t=(LinkList)malloc(sizeof(Node)); 21 t->data=e; 22 t->next=q->next; 23 q->next=t; 24 q=t; 25 } 26 27 } 28 LinkList MergeLinkList(LinkList A,LinkList B) 29 { 30 LinkList C=A; 31 Node*a=A->next,*b=B->next,*c=A; 32 while(a&&b) 33 { 34 while(b&&b->data<a->data)b=b->next; 35 if(b&&b->data==a->data) 36 { 37 c->next=b; 38 c=c->next; 39 b=b->next; 40 } 41 a=a->next; 42 } 43 c->next=NULL; 44 45 46 return C; 47 } 48 OrderLinkList(LinkList L) 49 { 50 Node*t=L->next; 51 while(t) 52 { 53 printf("%d ",t->data); 54 t=t->next; 55 } 56 } 57 int main() 58 { 59 LinkList A,B,C; 60 InitLinkList(&A),InitLinkList(&B),InitLinkList(&C); 61 CreateLinkList(A),CreateLinkList(B); 62 C=MergeLinkList(A,B); 63 OrderLinkList(C); 64 return 0; 65 66 }