该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#defineElemTypeint
//LinkListCreateList_Head(LinkListL);//生命函数
typedefstructLNode{
ElemTypeData;//数据域
structLNode*Next;//指针域
}LNode,*LinkList;voidPrintList(LinkListL)
{
LinkListp;
p=L->Next;
printf("链表元素如下:\n");
while(p!=NULL)
{
printf("%d",p->Data);
p=p->Next;
}
printf("\n");
}intmain()
{
LinkLista,b,c;
printf("请创建a链表\n");
a=CreateList_Tail(a);
printf("a的data:\n");
PrintList(a);
printf("请创建b链表\n");
b=CreateList_Tail(b);
printf("b的data:\n");
PrintList(b);
printf("c链表如下\n");
LinkListMerge(a,b,c);
PrintList(c);
return0;
}//2.尾插法
LinkListCreateList_Tail(LinkListL)
{
intx;
L=(LNode*)malloc(sizeof(LNode));
LNode*s,*r=L;
scanf("%d",&x);
while(x!=9999){
s=(LNode*)malloc(sizeof(LNode));//创建新的结点
s->Data=x;
r->Next=s;
r=s;
scanf("%d",&x);
}
r->Next=NULL;
returnL;
}/链表的合并
boolLinkListMerge(LinkLista,LinkListb,LinkListc){
LNode*p,*q,*pc,*r,*s;
p=a->Next,q=b->Next;
pc=(LNode*)malloc(sizeof(LNode));
c=pc;
while(a&&b){
if(p->DataData){
//s->Next=p;
p=p->Next;
}
if(p->Data>q->Data){
//s->Next=q;
q=q->Next;
}
if(p->Data==q->Data){
s=(LNode*)malloc(sizeof(LNode));
s->Data=p->Data;
pc->Next=s;
pc=s;
p=p->Next;
q=q->Next;
}
}
returntrue;}