• 带头结点的两个链表La,Lb,将两个链表合并到La中,并且不破坏Lb的结构


    #include<stdio.h>
    #include<malloc.h>

    typedef struct LNode{
    int data;
    struct LNode *next;
    }LNode,*LinkList;

    void CreateList(LinkList &L,int n)
    {
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    LinkList r=L;
    LinkList p;
    int i;
    for(i=0;i<n;i++)
    {
    p=(LinkList)malloc(sizeof(LNode));
    scanf("%d",&p->data);
    r->next=p;
    r=p;
    }
    r->next=NULL;
    }

    void Visit(LinkList L)
    {
    LinkList p;
    p=L->next;
    while(p)
    {
    printf("%d ",p->data);
    p=p->next;
    }
    }

    void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)
    {
    LinkList pa=La->next;
    LinkList pb=Lb->next;
    LinkList pc=La;
    Lc=La;
    int a[100];
    int i=0;
    int j;
    LinkList f=Lb->next;
    while(f)
    {
    a[i]=f->data;
    f=f->next;
    i++;
    }
    while(pa && pb)
    {
    if(pa->data < pb->data)
    {
    pc->next=pa;
    pc=pa;
    pa=pa->next;
    }
    else if(pa->data > pb->data)
    {
    pc->next=pb;
    pc=pb;
    pb=pb->next;
    }
    else
    {
    pc->next=pa;
    pc=pa;
    pa=pa->next;
    pb=pb->next;
    }
    }
    pc->next=pa?pa:pb;
    free(Lb);
    Lb=(LinkList)malloc(sizeof(LNode));
    Lb->next=NULL;
    LinkList r=Lb;
    LinkList p;
    for(j=0;j<i;j++)
    {
    p=(LinkList)malloc(sizeof(LNode));
    p->data=a[j];
    r->next=p;
    r=p;
    }
    r->next=NULL;
    }

    int main()
    {
    LinkList a;
    LinkList p;

    CreateList(p,3);
    // Visit(p);
    // printf(" ");

    LinkList q;
    CreateList(q,3);
    // Visit(q);
    // printf(" ");

    MergeList(p,q,a);
    Visit(p);
    printf(" ");
    Visit(q);
    printf(" ");
    // Visit(a);
    // printf(" ");
    return 0;
    }

    运行结果

  • 相关阅读:
    LeetCode-389-找不同
    xml配置与使用
    curl使用
    php中JPGraph入门配置与应用
    php开发通用采集程序
    adodb配置与使用
    swfupload上传
    ZendFramework使用中常见问题
    memcache配置与使用
    第四章 供给与需求的市场力量
  • 原文地址:https://www.cnblogs.com/Dearmyh/p/9976365.html
Copyright © 2020-2023  润新知