前言:合并操作用到基本操作在本篇文章有代码
一、合并两个链表
void Listunion(LinkList La,LinkList Lb)
{
printf("------合并两链表开始------\n");
ElemType *eb=(ElemType*)malloc(sizeof(ElemType));
int LenA=ListLength(La);
int LenB=ListLength(Lb);
for (int i=1;i<=LenB;i++)
{
GetElem_L(Lb,i,eb);
if (!IsListData(La,*eb))
{
ListInsert(La,++LenA,*eb);
}
}
printf("------合并两链表完成------\n");
}
二、代码运行
int _tmain(int argc, _TCHAR* argv[])
{
/*合并操作*/
printf("输入创建链接结点个数\n");
int n;
scanf_s("%d",&n);
LinkList La;
La=(LinkList)malloc(sizeof(LNode));
La->next=NULL;//建立带头结点的单链表
CreateList_L(La,n);
PrintList(La);
printf("输入创建链接结点个数\n");
scanf_s("%d",&n);
LinkList Lb;
Lb=(LinkList)malloc(sizeof(LNode));
Lb->next=NULL;//建立带头结点的单链表
CreateList_L(Lb,n);
PrintList(Lb);
Listunion(La,Lb);
PrintList(La);
system("pause");
return 0;
}