合并两个循环单链表

来源:互联网 发布:springmvc源码详解 编辑:程序博客网 时间:2024/06/08 04:59
#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的头结点}

原创粉丝点击