#include<stdio.h>
#include <malloc.h>
typedef struct linknode
{
int data;
linknode *next;
} Node,*Linklist;
Linklist CreateList_end(int n);//建立循环单链表
Linklist Merge(Linklist RA,Linklist RB);//合并两个循环单链表
void ShowList(Linklist L);
int main(void)
{
Linklist L1,L2,L;
int n;
scanf("%d",&n);
L1=CreateList_end(n);
L2=CreateList_end(n);
L=Merge(L1,L2);
ShowList(L);
return 0;
}
Linklist CreateList_end(int n)
{
Linklist head=(Linklist)malloc(sizeof(Node));
Node *p,*e;
p=head;
int x;
for(int i=0; i<n; i++)
{
e=(Linklist)malloc(sizeof(Node));
scanf("%d",&x);
e->data=x;
p->next=e;
p=e;
}
head=head->next;
p->next=head;
return p;
}
void ShowList(Linklist L)
{
while(L)
{
printf("%d ",L->data);
L=L->next;
}
printf("\n");
}
Linklist Merge(Linklist RA,Linklist RB)//合并两个循环单链表
{
Node *p,*q;
p=RA->next;//将RA的头结点保存在p中
q=RB->next;//将RB的头结点保存在q中
RB->next=p;//将RA的尾节点接到RB的头结点上
RA->next=q;//将RB的尾节点接到RA的头结点上
return p;//返回RA的头结点
}
合并两个循环单链表
最新推荐文章于 2022-12-04 00:33:33 发布