
#include<stdio.h>
#include<stdlib.h> typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkList; void InitList(LinkList *&L)
{
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}
/*void CreateListF(LinkList *&L,ElemType a[],int n)
{
LinkList *s;int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
for (i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}*/
void CreateListF(LinkList *&L,ElemType a[],int n)
{
LinkList *r=L, *s;
for(int 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;
while (p!=NULL)
{ printf("%d----->",p->data);
p=p->next;
}
printf("NULL\n");
}
void connect(LinkList *&L,LinkList *&L1,LinkList *&L2)
{
InitList(L);
L->next=L1->next;
LinkList *p=L1;
while(p->next!=NULL)
{
p=p->next;
}
p->next=L2->next;
}
/*void connect(LinkList *&L, LinkList *&L1, LinkList *&L2)
{
InitList(L);
L->next= L1->next;
LinkList *p=L1;
while(p->next!=NULL)
{
p=p->next;
}
p->next=L2->next;
}*/ int main()
{
LinkList *L1, *L2, *L;
int m,n;
ElemType a[50],b[50];
InitList(L1);
InitList(L2); printf("请输入m和n的值:");
scanf("%d",&m);
scanf("%d",&n);
printf("请为链表一输入%d个数:",m);
for(int i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
CreateListF(L1,a,m);
printf("链表一是:");
DispList(L1); printf("请为链表二输入%d个数:",n);
for(int j=0;j<n;j++)
{
scanf("%d",&a[j]);
}
CreateListF(L2,b,n);
printf("链表二是:");
DispList(L2);
// LinkList *L;
connect(L,L1,L2);
printf("连接的新链表是:");
DispList(L);
return 0;
}

